Hashtable
クラス内に短い静的メソッドを記述して、キー(s)の順にいくつかの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
このエラーを回避する方法は何ですか?前もって感謝します。