クラスの1.NameValueCollectionセットは、NameObjectCollectionBaseクラスに基づいています。
NameObjectCollectionBase異なる、キーストリングにそのような記憶された複数の値(つまり、同一のキー値は、一例として接続されています)。このクラスは、ヘッダ内のクエリ文字列とフォームデータを使用することができます。
各要素はキー/値のペアです。NameValueCollectionのNameValueCollectionの容量を節約することができる要素の数です。
NameValueCollectionのデフォルト初期容量がゼロです。NameValueCollectionのへの添加元素としては、オンデマンドで容量が自動的に再配分により増加しました。
例としては、次のとおりです:
- NameValueCollectionのmyCol = 新しい NameValueCollectionの();
- myCol.Add(「赤」、 「ロホ」); //もし赤ロホをマージするキーと同じ結果、ルージュ
- myCol.Add("緑" 、 "ヴェルデ" )。
- myCol.Add("青" 、 "アズール" )。
- myCol.Add("赤" 、 "口紅" )。
そして、Hashtableの差2.NameValueCollection
。基準差分
ハッシュテーブル:にSystem.Collectionsを使用しました。
NameValueCollectionの: System.Collections.Specializedを使用して、
B。キーが繰り返されます
NameValueCollectionの:重複を許可します。
コレクションの値が、キーが重複することはできません - ハッシュテーブルは、キーです。
- HashtableのHT = 新しい Hashtableの();
- ht.Add("キー" 、"値" );
- ht.Add("キー" 、 "VALUE1" )。 //出错
- HT [ 「キー」= 「値1」。 //正确
3.初期化NameValueCollectionの
NameValueCollectionのはSystem.Collections.Specializedを用いて基準を初期化する必要があり、
完全なソースコードの例:
- 使用して システムを。使用 にSystem.Collectionsを。
- 使用して System.Collections.Specializedを。
- 名前空間の SamplesNameValueCollection
- {
- クラス プログラム
- {
- 公共の静的な無効 メイン()
- {
- // System.Collections.Specializedを使用して必要性のNameValueCollectionの参照を初期化します。
- NameValueCollectionのmyCol = 新しい NameValueCollectionの();
- myCol.Add(「赤」、 「ロホ」); //もし赤ロホをマージするキーと同じ結果、ルージュ
- myCol.Add("緑" 、 "ヴェルデ" )。
- myCol.Add("青" 、 "アズール" )。
- myCol.Add("赤" 、 "口紅" )。
- //は、2つの異なる方法でNameValueCollectionの中で値を表示します。
- //キー、値を表示します
- Console.WriteLineを(「AllKeysプロパティを使用して要素および項目(インデクサ)プロパティを表示します」);
- PrintKeysAndValues(Mycol)。
- Console.WriteLineを(「のGetKeyを使用して要素を表示し、取得:」);
- PrintKeysAndValues2(Mycol)。
- //インデックスまたはキーによって、どちらかの値を取得します。
- //インデックス値で取得したり、
- Console.WriteLineを("インデックス値1ザ{0}は含まれています。" 、myCol [1]); //インデックス1
- Console.WriteLineを("キー\"赤\ "値{0}有する" 、[myCol "赤" ]); 赤口紅に対応//キー値
- Console.WriteLineを();
- //文字列配列にコピーした値を、文字列の配列を表示します。
- 文字列[] myStrArr = 新しい 文字列[myCol.Count]。
- myCol.CopyTo(myStrArr、0);
- Console.WriteLineを(「文字列の配列が含まれています。」);
- foreachの (文字列の 中 myStrArr)
- Console.WriteLineを("{0}" 、S);
- Console.WriteLineを();
- //緑色のキーを検索してから削除します
- myCol.Remove("グリーン" );
- Console.WriteLineを(グリーン\「コレクションは\を削除した後、次の要素が含まれています」「:」);
- PrintKeysAndValues(Mycol)。
- //空のコレクション
- myCol.Clear();
- Console.WriteLineを(「それがクリアされた後、コレクションには、以下の要素が含まれています。」);
- PrintKeysAndValues(Mycol)。
- }
- //キー、値を表示します
- 公共の静的な無効 PrintKeysAndValues(NameValueCollectionのmyCol)
- {
- IEnumerator myEnumerator = myCol.GetEnumerator()。
- Console.WriteLineを(「キー値」)。
- foreachの (文字列の 中 myCol.AllKeys)
- Console.WriteLineを("{0、-10}、{1}" 、S、myCol [S])。
- Console.WriteLineを();
- }
- //インデックス、キー、値を表示します
- 公共の静的な無効 PrintKeysAndValues2(NameValueCollectionのmyCol)
- {
- Console.WriteLineを("[INDEX]キー値" )。
- 以下のために (int型 私= 0;私<myCol.Count、私は++)
- Console.WriteLineを("[{0}] {1、-10} {2}" 、I、myCol.GetKey(I)、myCol.Get(I))。
- Console.WriteLineを();
- }
- }
- }
4.NameValueCollectionトラバーサル
そして、同様のハッシュテーブル:
- NameValueCollectionのmyCol = 新しい NameValueCollectionの();
- myCol.Add(「赤」、 「ロホ」); //もし赤ロホをマージするキーと同じ結果、ルージュ
- myCol.Add("緑" 、 "ヴェルデ" )。
- myCol.Add("青" 、 "アズール" )。
- myCol [ "赤" ] = "DD" 。
- foreachの (文字列 キー で myCol.Keys)
- {
- Console.WriteLineを("{0}:{1}" 、キー、myCol [キー])。
- }
- Console.ReadLine();
ます。https://www.cnblogs.com/zhangchenliang/archive/2012/02/28/2371141.htmlで再現