生活随笔
收集整理的這篇文章主要介紹了
C# NameValueCollection集合 (转)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
C# NameValueCollection集合 (轉(zhuǎn))
1.NameValueCollection類集合是基于?NameObjectCollectionBase?類。
但與 NameObjectCollectionBase 不同,該類在一個鍵下存儲多個字符串值(就是鍵相同,值就連接起來如下例子)。該類可用于標(biāo)頭、查詢字符串和窗體數(shù)據(jù)。
每個元素都是一個鍵/值對。NameValueCollection 的容量是 NameValueCollection 可以保存的元素數(shù)。
NameValueCollection 的默認(rèn)初始容量為零。隨著向 NameValueCollection 中添加元素,容量通過重新分配按需自動增加。
如下例子:
NameValueCollection myCol =
new NameValueCollection(); myCol.Add("red",
"rojo");
//如果鍵值red相同結(jié)果合并 rojo,rouge myCol.Add(
"green",
"verde"); myCol.Add("blue",
"azul"); myCol.Add("red",
"rouge");
?
?
2.NameValueCollection與Hashtable的區(qū)別
a.引用區(qū)別
hashtable:using System.Collections;
NameValueCollection:using System.Collections.Specialized;?
b.鍵是否重復(fù)
NameValueCollection:允許重復(fù).
HashTable是鍵-值集合,但鍵不能出現(xiàn)重復(fù).?
?
Hashtable?ht?=?new?Hashtable();??ht.Add("key","value");??ht.Add("key",?"value1");?//出錯??ht["key"]?=?"value1";?//正確???
?
?
?
3.初始化NameValueCollection?
?
?
初始化NameValueCollection需引用using System.Collections.Specialized;
完整例子源碼:
?
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相同結(jié)果合并?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的對應(yīng)值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();??????????}??????}????}?? ?
4.NameValueCollection遍歷?
與Hashtable相似:?
?
NameValueCollection?myCol?=?new?NameValueCollection();????myCol.Add("red",?"rojo");//如果鍵值red相同結(jié)果合并?rojo,rouge????myCol.Add("green",?"verde");????myCol.Add("blue",?"azul");??myCol["red"]?=?"dd";????foreach?(string?key?in?myCol.Keys)??{??????Console.WriteLine("{0}:{1}",?key,?myCol[key]);??}??Console.ReadLine();?? 轉(zhuǎn)自:http://blog.csdn.net/a497785609/article/details/5702356
posted on
2013-08-20 14:09 天使半只翼 閱讀(
...) 評論() 編輯 收藏
轉(zhuǎn)載于:https://www.cnblogs.com/william-lin/p/3270092.html
總結(jié)
以上是生活随笔為你收集整理的C# NameValueCollection集合 (转)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。