我有一个NameValueCollection
,并且想要遍历值。目前,我正在做这件事,但似乎应该有一种更简洁的方法:
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();
在那里吗?
发布于 2011-02-21 20:34:54
您可以使用键进行查找,而不是使用两个循环:
foreach (string key in nvc)
{
Console.WriteLine("{0} {1}", key, nvc[key]);
}
发布于 2011-02-21 20:44:44
我发现避免嵌套循环的唯一方法是使用额外的列表来存储值:
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或更高版本)
发布于 2017-12-17 19:27:06
我认为这更简单: VB.NET
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#:
for (int i = 0; i <= nvc.Count - 1; i++)
{
Console.Write("No", "Key", "Value");
Console.Write(i, nvc.GetKey(i), nvc.Get(i));
}
https://stackoverflow.com/questions/5065928
复制相似问题