foreach (string myKey in mySortedList.Keys)
定義キーと拡張キーが含まれていないと言う理由。理由がわかりますか?私はもうusing System.Collections.Generic;
mySortedList
実際に何であれ、プロパティはありませんKeys
。コンパイラはあなたにそれを教えてくれました。そう:
mySortedList
ます。例が役立つかもしれません。以下のコードでは、最初の foreach はコンパイルされますが、2 番目はコンパイルされません。どちらも SortedList の同じインスタンスに基づいていますが、2 番目のものはそれを別の型としてキャストしており、キーをサポートしていません。
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);
mySortedList
ではないかSortedList
、より原始的な状態から箱から出されていません。
var list = mySortedList as SortedList;
foreach (string myKey in list.Keys) { ... }