定義済みのキーから始まる値が辞書に含まれているかどうかを確認するにはどうすればよいですか? たとえば、最初のキーから検索を開始するのではなく、特定のキーの後にのみ辞書を検索したい。
どうすればこれを達成できますか?
定義済みのキーから始まる値が辞書に含まれているかどうかを確認するにはどうすればよいですか? たとえば、最初のキーから検索を開始するのではなく、特定のキーの後にのみ辞書を検索したい。
どうすればこれを達成できますか?
それが通常の場合Dictionary<TKey, TValue>
は、最初に並べ替えない限りできません。
できることは、SortedList<TKey, TValue>
またはSortedDictionary<TKey, TValue>
のいずれかを使用することです。どちらもキーでソートします。
(前述のように)順序が保証されていないため、この状況で辞書を使用するのが最適かどうかはわかりません。ただし、 a を使用するList<>
と、探している動作を取得できます。この例のように:
var items = new List<KeyValuePair<string, string>>();
items.Add(new KeyValuePair<string, string>("A", "1"));
items.Add(new KeyValuePair<string, string>("B", "2"));
items.Add(new KeyValuePair<string, string>("C", "3"));
var results = items.Skip(1).Take(1).ToList();
MessageBox.Show(results[0].Key + " " + results[0].Value);
Skip
この例では、およびメソッドを使用した結果のメッセージは "B 2" になりTake
ます。最初の「1」を「スキップ」し、次の「1」を「取得」します。
編集(文字列ではなく KeyValuePair リストを使用するようにリファクタリングされました。)