首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >C#遍历NameValueCollection

C#遍历NameValueCollection
EN

Stack Overflow用户
提问于 2011-02-21 20:30:35
回答 6查看 71.3K关注 0票数 77

我有一个NameValueCollection,并且想要遍历值。目前,我正在做这件事,但似乎应该有一种更简洁的方法:

代码语言:javascript
复制
NameValueCollection nvc = new NameValueCollection();
nvc.Add("Test", "Val1");
nvc.Add("Test2", "Val1");
nvc.Add("Test2", "Val1");
nvc.Add("Test2", "Val2");
nvc.Add("Test3", "Val1");
nvc.Add("Test4", "Val4");

foreach (string s in nvc)
    foreach (string v in nvc.GetValues(s))
        Console.WriteLine("{0} {1}", s, v);

Console.ReadLine();

在那里吗?

EN

回答 6

Stack Overflow用户

发布于 2011-02-21 20:34:54

您可以使用键进行查找,而不是使用两个循环:

代码语言:javascript
复制
foreach (string key in nvc)
{
    Console.WriteLine("{0} {1}", key, nvc[key]);
}
票数 86
EN

Stack Overflow用户

发布于 2011-02-21 20:44:44

我发现避免嵌套循环的唯一方法是使用额外的列表来存储值:

代码语言:javascript
复制
List<string> arrValues = new List<string>();
for (int i = 0; i < nvc.Count; i++)
    arrValues.AddRange(nvc.GetValues(i));
foreach (string value in arrValues)
    Console.WriteLine(value);

(仅需要.NET 2.0或更高版本)

票数 1
EN

Stack Overflow用户

发布于 2017-12-17 19:27:06

我认为这更简单: VB.NET

代码语言:javascript
复制
For i As Integer = 0 To nvc.Count - 1
   Console.Write("No", "Key", "Value")
   Console.Write(i, nvc.GetKey(i), nvc.Get(i))
Next

C#:

代码语言:javascript
复制
for (int i = 0; i <= nvc.Count - 1; i++)
{
    Console.Write("No", "Key", "Value");
    Console.Write(i, nvc.GetKey(i), nvc.Get(i));
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5065928

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档