NameValueCollection的键不区分大小写,当键重复时,只是将新增的值 合并到该键对应的值集合中。
测试程序如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections.Specialized;
namespace NvcDemo
{
class Program
{
static void Main(string[] args)
{
//NameValueCollection的键不区分大小写,当键重复时,只是将新增的值 合并到该键对应的值集合中
//Add(string name, string value)键不区分大小写,如果键重复,【ABC和abc是同一个键】,则增加值到键ABC的值的数组中
NameValueCollection nvc = new NameValueCollection();
nvc.Add("ABC", "北洛");
Console.WriteLine($"键值对集合的元素个数:【{nvc.Count}】键ABC的值:{string.Join(",", nvc.GetValues("ABC"))}");
nvc.Add("Test", "嫘祖");
Console.WriteLine($"键值对集合的元素个数:【{nvc.Count}】键ABC的值:{string.Join(",", nvc.GetValues("ABC"))}");
nvc.Add("123", "姬轩辕");
Console.WriteLine($"键值对集合的元素个数:【{nvc.Count}】键ABC的值:{string.Join(",", nvc.GetValues("ABC"))}");
nvc.Add("aBc", "云无月");
Console.WriteLine($"键值对集合的元素个数:【{nvc.Count}】键ABC的值:{string.Join(",", nvc.GetValues("ABC"))}");
//nvc[string name]=value 这个索引器将键ABC的值强行更改为value
nvc["Abc"] = "缙云";
Console.WriteLine($"键值对集合的元素个数:【{nvc.Count}】键ABC的值:{string.Join(",", nvc.GetValues("ABC"))}");
nvc.Add("abc", "岑缨");
Console.WriteLine($"键值对集合的元素个数:【{nvc.Count}】键ABC的值:{string.Join(",", nvc.GetValues("ABC"))}");
nvc.Add("ABC", "玄戈");
Console.WriteLine($"键值对集合的元素个数:【{nvc.Count}】键ABC的值:{string.Join(",", nvc.GetValues("ABC"))}");
Console.WriteLine($"获取值,通过索引:{nvc[0]}");//获取指定项的值
Console.WriteLine($"获取值,通过键名:{nvc["ABc"]}");//索引器:通过键获取值,值是用逗号拼接每个元素后形成的字符串
Console.WriteLine($"获取值,通过函数:{nvc.Get("ABC")}");//直接获取值集合,用逗号拼接
Console.ReadLine();
}
}
}
运行效果如图: