詳細NameValueCollectionの

クラスの1.NameValueCollectionセットは、NameObjectCollectionBaseクラスに基づいています。

NameObjectCollectionBase異なる、キーストリングにそのような記憶された複数の値(つまり、同一のキー値は、一例として接続されています)。このクラスは、ヘッダ内のクエリ文字列とフォームデータを使用することができます。
各要素はキー/値のペアです。NameValueCollectionのNameValueCollectionの容量を節約することができる要素の数です。
NameValueCollectionのデフォルト初期容量がゼロです。NameValueCollectionのへの添加元素としては、オンデマンドで容量が自動的に再配分により増加しました。
例としては、次のとおりです:

  1. NameValueCollectionのmyCol =  新しい NameValueCollectionの();  
  2.             myCol.Add(「赤」、  「ロホ」); //もし赤ロホをマージするキーと同じ結果、ルージュ  
  3.             myCol.Add("緑" 、  "ヴェルデ" )。  
  4.             myCol.Add("青" 、  "アズール" )。  
  5.             myCol.Add("赤" 、  "口紅" )。  

そして、Hashtableの差2.NameValueCollection

。基準差分

ハッシュテーブル:にSystem.Collectionsを使用しました。

NameValueCollectionの: System.Collections.Specializedを使用して、 

B。キーが繰り返されます

NameValueCollectionの:重複を許可します。

コレクションの値が、キーが重複することはできません - ハッシュテーブルは、キーです。 

  1. HashtableのHT =  新しい Hashtableの();  
  2. ht.Add("キー" "値" );  
  3. ht.Add("キー" 、  "VALUE1" )。 //出错  
  4. HT [ 「キー」「値1」。 //正确  

3.初期化NameValueCollectionの 

NameValueCollectionのはSystem.Collections.Specializedを用いて基準を初期化する必要があり、
完全なソースコードの例:

  1. 使用して システムを。使用 にSystem.Collectionsを。  
  2. 使用して System.Collections.Specializedを。  
  3.   
  4. 名前空間の SamplesNameValueCollection  
  5. {  
  6.     クラス プログラム  
  7.     {  
  8.   
  9.         公共の静的な無効 メイン()    
  10.         {  
  11.             // System.Collections.Specializedを使用して必要性のNameValueCollectionの参照を初期化します。  
  12.             NameValueCollectionのmyCol =  新しい NameValueCollectionの();  
  13.             myCol.Add(「赤」、  「ロホ」); //もし赤ロホをマージするキーと同じ結果、ルージュ  
  14.             myCol.Add("緑" 、  "ヴェルデ" )。  
  15.             myCol.Add("青" 、  "アズール" )。  
  16.             myCol.Add("赤" 、  "口紅" )。  
  17.   
  18.             //は、2つの異なる方法でNameValueCollectionの中で値を表示します。  
  19.             //キー、値を表示します  
  20.             Console.WriteLineを(「AllKeysプロパティを使用して要素および項目(インデクサ)プロパティを表示します」);  
  21.             PrintKeysAndValues(Mycol)。  
  22.             Console.WriteLineを(「のGetKeyを使用して要素を表示し、取得:」);  
  23.             PrintKeysAndValues2(Mycol)。  
  24.   
  25.             //インデックスまたはキーによって、どちらかの値を取得します。  
  26.             //インデックス値で取得したり、  
  27.             Console.WriteLineを("インデックス値1ザ{0}は含まれています。" 、myCol [1]); //インデックス1  
  28.             Console.WriteLineを("キー\"赤\ "値{0}有する" 、[myCol "赤" ]); 赤口紅に対応//キー値  
  29.             Console.WriteLineを();  
  30.   
  31.             //文字列配列にコピーした値を、文字列の配列を表示します。  
  32.             文字列[] myStrArr =  新しい 文字列[myCol.Count]。  
  33.             myCol.CopyTo(myStrArr、0);  
  34.             Console.WriteLineを(「文字列の配列が含まれています。」);  
  35.             foreachの (文字列の   myStrArr)  
  36.                 Console.WriteLineを"{0}" 、S);  
  37.             Console.WriteLineを();  
  38.   
  39.             //緑色のキーを検索してから削除します  
  40.             myCol.Remove("グリーン" );  
  41.             Console.WriteLineを(グリーン\「コレクションは\を削除した後、次の要素が含まれています」「:」);  
  42.             PrintKeysAndValues(Mycol)。  
  43.   
  44.             //空のコレクション  
  45.             myCol.Clear();  
  46.             Console.WriteLineを(「それがクリアされた後、コレクションには、以下の要素が含まれています。」);  
  47.             PrintKeysAndValues(Mycol)。  
  48.   
  49.         }  
  50.         //キー、値を表示します  
  51.         公共の静的な無効 PrintKeysAndValues(NameValueCollectionのmyCol)    
  52.         {  
  53.             IEnumerator myEnumerator = myCol.GetEnumerator()。  
  54.             Console.WriteLineを(「キー値」)。  
  55.             foreachの (文字列の   myCol.AllKeys)  
  56.                 Console.WriteLineを"{0、-10}、{1}" 、S、myCol [S])。  
  57.             Console.WriteLineを();  
  58.         }  
  59.         //インデックス、キー、値を表示します  
  60.         公共の静的な無効 PrintKeysAndValues2(NameValueCollectionのmyCol)    
  61.         {  
  62.             Console.WriteLineを("[INDEX]キー値" )。  
  63.             以下のために (int型 私= 0;私<myCol.Count、私は++)  
  64.                 Console.WriteLineを"[{0}] {1、-10} {2}" 、I、myCol.GetKey(I)、myCol.Get(I))。  
  65.             Console.WriteLineを();  
  66.         }  
  67.     }  
  68.   
  69. }  

4.NameValueCollectionトラバーサル 

そして、同様のハッシュテーブル: 

  1. NameValueCollectionのmyCol =  新しい NameValueCollectionの();    
  2. myCol.Add(「赤」、  「ロホ」); //もし赤ロホをマージするキーと同じ結果、ルージュ    
  3. myCol.Add("緑" 、  "ヴェルデ" )。    
  4. myCol.Add("青" 、  "アズール" )。  
  5. myCol [ "赤" ] =  "DD" 。  
  6.   
  7. foreachの (文字列 キー   myCol.Keys)  
  8. {  
  9.     Console.WriteLineを("{0}:{1}" キー、myCol [キー])。  
  10. }  
  11. Console.ReadLine();  

参考:http://msdn.microsoft.com/zh-cn/library/system.collections.specialized.namevaluecollection(VS.80).aspx

ます。https://www.cnblogs.com/zhangchenliang/archive/2012/02/28/2371141.htmlで再現

おすすめ

転載: blog.csdn.net/weixin_34309543/article/details/93494890