NameValueCollection类用法详解
来源:互联网 发布:爱奇艺会员淘宝出租 编辑:程序博客网 时间:2024/05/21 21:58
C#中NameValueCollection类用法详解,1.NameValueCollection类集合是基于 NameObjectCollectionBase 类。
但与 NameObjectCollectionBase 不同,该类在一个键下存储多个字符串值(就是键相同,值就连接起来如下例子)。该类可用于标头、查询字符串和窗体数据。
每个元素都是一个键/值对。NameValueCollection 的容量是 NameValueCollection 可以保存的元素数。
NameValueCollection 的默认初始容量为零。随着向 NameValueCollection 中添加元素,容量通过重新分配按需自动增加。
如下例子:
NameValueCollection myCol = new NameValueCollection();
myCol.Add("red", "rojo");//如果键值red相同结果合并 rojo,rouge
myCol.Add("green", "verde");
myCol.Add("blue", "azul");
myCol.Add("red", "rouge");
2.NameValueCollection与Hashtable的区别
a.引用区别
hashtable:using System.Collections;
NameValueCollection:using System.Collections.Specialized;
b.键是否重复
NameValueCollection:允许重复.
HashTable是键-值集合,但键不能出现重复.
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相同结果合并 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();
}
}
}
4.NameValueCollection遍历
与Hashtable相似:
NameValueCollection myCol = new NameValueCollection();
myCol.Add("red", "rojo");//如果键值red相同结果合并 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();
- NameValueCollection类用法详解
- NameValueCollection类用法详解
- NameValueCollection 用法
- NameValueCollection详解
- NameValueCollection详解
- NameValueCollection详解
- NameValueCollection详解
- NameValueCollection详解
- NameValueCollection详解
- NameValueCollection详解
- NameValueCollection详解
- NameValueCollection类
- NameValueCollection类集合
- NameValueCollection
- 关于系统对象NameValueCollection的用法
- 打造自定义配置文件- NameValueCollection类
- NameValueCollection类读取配置信息
- c# NameValueCollection类读取配置信息
- 【转】诺基亚发布Qt SDK 1.1 RC版
- 传智播客-spring2.5(5)-struts、spring、hibernate集成
- windows核心编程 宏
- C/C++程序员应聘常见面试题深入剖析--3内功修炼
- 对自身IP数据报在网卡处理的一些认识
- NameValueCollection类用法详解
- socket重用
- RTSP服务器处理客户端点播的基本流程
- 项目团队建设三原则
- C#存储Dat文件并序列化与反序列化
- NameValueCollection类用法详解
- 【转】Linux下获取第一个网络接口名称的函数实现
- com.ctc.wstx.exc.WstxParsingException: Illegal processing instruction target ("xml"); xml (case insensitive) is reserved by the
- HashTable和NameValueCollection的区别示例