NameValueCollection 相当于 Key 和 Value 都是字符串的且能通过索引访问的哈希表.
主要成员:
/* 属性 */ AllKeys; //返回包含所有键的 string[] Count; // Keys; //键集合 /* 方法 */ Add(); // Clear(); // CopyTo(); // Get(); //根据索引或键取值, 有多个值时会用逗号隔开 GetKey(); //根据索引取键 GetValues(); //根据索引或键取值, 返回 string[] HasKeys(); //是否包含非 null 键 Remove(); //根据键移除 Set(); //改值; 若键不存在则同 Add()
其 Key 可为 null, 且可对应多个 Value:
protected void Button1_Click(object sender, EventArgs e) { NameValueCollection nv = new NameValueCollection(); nv.Add("k1", "AAA"); nv.Add("k2", "BBB"); nv.Add("k3", "CCC"); nv.Add(null, "DDD"); nv.Add("k2", "b"); nv.Add("k2", "bb"); nv.Add("k2", "bbb"); string str1 = nv["k1"]; //AAA string str2 = nv["k2"]; //BBB,b,bb,bbb : 多个值会用逗号分开 string str3 = nv[1]; //BBB,b,bb,bbb string str4 = nv[null]; //DDD TextBox1.Text = str1 + "\n" + str2 + "\n" + str3 + "\n" + str4; }
练习:
protected void Button1_Click(object sender, EventArgs e) { NameValueCollection nv = new NameValueCollection(); nv.Add("k1", "AAA"); nv.Add("k2", "BBB"); nv.Add("k3", "CCC"); nv.Add("k2", "b"); nv.Add("k2", "bb"); nv.Add("k2", "bbb"); int n = nv.Count; //3 : k1、k2、k3 nv.Set("k1", "aaa"); string str1 = nv.Get(0); //aaa string str2 = nv.Get("k1"); //aaa string str3 = nv.GetKey(0); //k1 string[] sArr1 = nv.GetValues(0); string[] sArr2 = nv.GetValues("k2"); string str4 = string.Join("; ", sArr1); //aaa string str5 = string.Join("; ", sArr2); TextBox1.Text = string.Format("{0}\n{1}\n{2}\n{3}\n{4}\n{5}", n, str1, str2, str3, str4, str5); } protected void Button2_Click(object sender, EventArgs e) { NameValueCollection nv = new NameValueCollection(); nv.Add("k1", "AAA"); nv.Add("k2", "BBB"); nv.Add("k3", "CCC"); nv.Add("k2", "b"); nv.Add("k2", "bb"); nv.Add("k2", "bbb"); NameValueCollection.KeysCollection keys = nv.Keys; string str1 = ""; foreach (string s in keys) { str1 += s + ", "; } //k1, k2, k3, string str2 = string.Join("; ", nv.AllKeys); //k1; k2; k3 TextBox1.Text = str1 + "\n" + str2; }
分类:
C# 与 Net
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
2010-01-07 如何用 GDI+ 高质量地缩放图片 - 回复 "程序牛" 的问题
2010-01-07 RegularExpressions(5) RegularExpressions 成员(二) IRegex
2010-01-07 RegularExpressions(4) RegularExpressions 成员(一)
2010-01-07 RegularExpressions(3) RegularExpressions 的工作思路
2009-01-07 Delphi 与 DirectX 之 DelphiX(1): 安装测试
2009-01-07 求助! 谁有 《inside delphiX》这本书?
2009-01-07 模拟点击网页中的按钮 - 回复 "starcraft_ly" 的问题