在 C#7 中是否可以在字典的 foreach 循环中使用解构?像这样的事情:
var dic = new Dictionary<string, int>{ ["Bob"] = 32, ["Alice"] = 17 };
foreach (var (name, age) in dic)
{
Console.WriteLine($"{name} is {age} years old.");
}
它似乎不适用于 Visual Studio 2017 RC4 和 .NET Framework 4.6.2:
错误 CS1061:“KeyValuePair”不包含“Deconstruct”的定义,并且找不到接受“KeyValuePair”类型的第一个参数的扩展方法“Deconstruct”(您是否缺少 using 指令或程序集引用?)
如果你不喜欢写Deconstruct
方法,尤其是如果您只在一个地方需要它时,以下是如何使用 LINQ 将其作为单行代码执行:
使用你原来的字典:
var dic = new Dictionary<string, int>{ ["Bob"] = 32, ["Alice"] = 17 };
你可以这样做:
foreach (var (name, age) in dic.Select(x => (x.Key, x.Value)))
{
Console.WriteLine($"{name} is {age} years old.");
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)