foreach (string myKey in mySortedList.Keys)
为什么它说不包含定义键和扩展键。我可以知道为什么吗?我已经using System.Collections.Generic;
无论mySortedList
实际是什么,它都没有属性Keys
。编译器告诉你这么多。所以:
mySortedList
。要么mySortedList
不是 a要么SortedList
没有从更原始的状态中拆箱。
var list = mySortedList as SortedList;
foreach (string myKey in list.Keys) { ... }
也许一个例子会有所帮助。在下面的代码中,第一个 foreach 编译,但第二个没有。两者都基于相同的 SortedList 实例,但第二个将其转换为不支持 Keys 的不同类型。
SortedList<string, string> sorted = new SortedList<string, string>();
foreach (string s in sorted.Keys)
Console.WriteLine(s);
IEnumerable stillSorted = sorted as IEnumerable;
foreaach (string t in stillSorted.Keys)
Console.WriteLine(t);
这是你的问题吗?如果您正在传递一个对象,请尝试自己投射它,如下例所示:
SortedList<string, string> sorted = mySortedList as SortedList<string, string>;
if (sorted != null)
foreach (string s in sorted.Keys)
Console.WriteLine(s);