Name Value Collectionの使い方

4641 ワード

一、Name Value Collection属性
 
AllKeys
このプロパティでは、NameValue Collectionのすべてのキーを取得できます.文字列配列を返します.
Count
この属性は、NameValueCollectionに含まれるキー値ペアの数を取得し、intを返します.
Item
この属性は、NameValue Collectionがnvc[1],nvc["key"]のようなインデックスでアクセスできることを示す.
Keys
この属性はNameObjectCollectionBaseを取得します.NameObjectCollectionBaseインスタンスのすべてのキーを含むKeysCollectionインスタンス.
IsReadOnly
NameObjectCollectionBaseインスタンスが読み取り専用であるかどうかを示す値を取得または設定します.
 
二、Name Value Collection方法
 
Add
現在のName Value Collectionにアイテムを追加します.たとえば、1つのパラメータは、1つのNameValue Collectionを現在のNameValue Collectionにコピーすることです.2つはキー値のペアです.
Clear
キャッシュ配列を無効にし、NameValue Collectionをクリアします.
CopyTo
ターゲット配列の指定したインデックスから、NameValue Collection全体を互換性のある1次元Arrayにコピーします.
Get
NameValue Collectionで指定したアイテムの値を取得します.keyまたはインデックス番号でアクセスできます.
GetEnumerator
NameObjectCollectionBaseへのループアクセスの列挙数を返します.
GetKey
NameValue Collectionの指定したインデックスにあるキーを取得します.
GetValues
Name Value Collectionで指定したアイテムの値を取得します.文字列配列を返します.なぜ配列を返しますか?1つの値に複数の項目が含まれる可能性があるからです.
HasKeys
NameValue Collectionに空でない参照キーが含まれているかどうかを示す値を取得します.すなわち、キー値ペアがあり、キーがnullでない場合はtrueを返し、そうでない場合はfalseを返します.オブジェクトが空かどうかを判断するために使用できます.
Remove
NameObjectCollectionBaseインスタンスで指定したキーを持つアイテムを削除します.キーキーキーに基づいてアイテムを削除するだけで、インデックスで削除することはできません.
Set
キー値ペアに基づいてアイテムを再設定します.
OnDeserialization
ISerializableインタフェースを実装し、逆シーケンス化が完了した後に逆シーケンス化イベントを開始します. 
 
三、Name Value Collection使用例
using System;  using System.Collections;  
using System.Collections.Specialized;  
  
namespace SamplesNameValueCollection  
{  
    class Program  
    {  
  
        public static void Main()  
        {  
            //   NameValueCollection   using System.Collections.Specialized;  
            NameValueCollection myCol = new NameValueCollection();  
            myCol.Add("red", "rojo");//    red       rojo,rouge  
            myCol.Add("green", "verde");  
            myCol.Add("blue", "azul");  
            myCol.Add("red", "rouge");  
  
            // Displays the values in the NameValueCollection in two different ways.  
            //   ,   
            Console.WriteLine("Displays the elements using the AllKeys property and the Item (indexer) property:");  
            PrintKeysAndValues(myCol);  
            Console.WriteLine("Displays the elements using GetKey and Get:");  
            PrintKeysAndValues2(myCol);  
  
            // Gets a value either by index or by key.  
            //         
            Console.WriteLine("Index 1 contains the value {0}.", myCol[1]);//  1    
            Console.WriteLine("Key /"red/" has the value {0}.", myCol["red"]);//  red    rouge  
            Console.WriteLine();  
  
            // Copies the values to a string array and displays the string array.  
            String[] myStrArr = new String[myCol.Count];  
            myCol.CopyTo(myStrArr, 0);  
            Console.WriteLine("The string array contains:");  
            foreach (String s in myStrArr)  
                Console.WriteLine("   {0}", s);  
            Console.WriteLine();  
  
            //  green        
            myCol.Remove("green");  
            Console.WriteLine("The collection contains the following elements after removing /"green/":");  
            PrintKeysAndValues(myCol);  
  
            //      
            myCol.Clear();  
            Console.WriteLine("The collection contains the following elements after it is cleared:");  
            PrintKeysAndValues(myCol);  
  
        }  
        //   ,   
        public static void PrintKeysAndValues(NameValueCollection myCol)  
        {  
            IEnumerator myEnumerator = myCol.GetEnumerator();  
            Console.WriteLine("   KEY        VALUE");  
            foreach (String s in myCol.AllKeys)  
                Console.WriteLine("   {0,-10} {1}", s, myCol[s]);  
            Console.WriteLine();  
        }  
        //    ,  ,   
        public static void PrintKeysAndValues2(NameValueCollection myCol)  
        {  
            Console.WriteLine("   [INDEX] KEY        VALUE");  
            for (int i = 0; i < myCol.Count; i++)  
                Console.WriteLine("   [{0}]     {1,-10} {2}", i, myCol.GetKey(i), myCol.Get(i));  
            Console.WriteLine();  
        }  
    }  
  
}  

参考資料:NameValue Collectionの使い方http://www.studyofnet.com/news/623.html