我在我的类中编写了一个简短的静态方法,以按键(Hashtable
s)的顺序迭代一些string
但是我得到了一个奇怪的编译器错误。这是有问题的方法:
public static DictionaryEntry inorderHashtable(Hashtable ht) {
string[] keys = ht.Keys.Cast<string>().ToArray<string>();
Array.Sort(keys);
foreach (string key in keys) {
yield return new DictionaryEntry(key, ht[key]);
}
}
稍后在类中使用它:
foreach(DictionaryEntry dentry in inorderHashtable(myTable)) { /* ... */ }
以下是我从VS2008获得的错误:'ns.myclass.inorderHashtable(System.Collections.Hashtable)' cannot be an iterator block because 'System.Collections.DictionaryEntry' is not an iterator interface type
这种错误有什么办法?提前谢谢。