gpt4 book ai didi

C# 遍历 NameValueCollection

转载 作者:IT王子 更新时间:2023-10-29 03:41:45 33 4
gpt4 key购买 nike

我有一个 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();

有吗?

最佳答案

您可以使用 Linq 展平集合,但它仍然是一个 foreach 循环,但现在更加隐式。

var items = nvc.AllKeys.SelectMany(nvc.GetValues, (k, v) => new {key = k, value = v});
foreach (var item in items)
Console.WriteLine("{0} {1}", item.key, item.value);

第一行,将嵌套集合转换为具有属性 keyvalue 的(非嵌套)匿名对象集合。

它被扁平化了,现在它是一个映射 key -> value 而不是 key -> collection of values。示例数据:

之前:

Test -> [Val],

Test2 -> [Val1, Val1, Val2],

Test3 -> [Val1],

Test4 -> [Val4]

之后:

Test -> Val,

Test2 -> Val1,

Test2 -> Val1,

Test2 -> Val2,

Test3 -> Val1,

Test4 -> Val4

关于C# 遍历 NameValueCollection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5065928/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com