Deconstruction in foreach over Dictionary
在C 7中,是否可以在字典上的foreach循环中使用解构?像这样:
1 2 3 4 5 | 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:
0首先,您必须为
1 2 3 4 5 | public static void Deconstruct<T1, T2>(this KeyValuePair<T1, T2> tuple, out T1 key, out T2 value) { key = tuple.Key; value = tuple.Value; } |
然后您将得到一个不同的错误:
0根据这个答案,您必须安装nuget包
然后它应该编译。然而,Visual Studio 2017 RC4将表示它无法解析符号名称
如果您不喜欢编写
使用原始词典:
1 | var dic = new Dictionary<string, int>{ ["Bob"] = 32, ["Alice"] = 17 }; |
你可以这样做:
2