辞書リストで個別の値をループしようとしています:
だから私はキーと値のペアの辞書を持っています。
辞書リストから文字列キーの個別の値を取得するにはどうすればよいですか?
var distinctList = mydict.Values.Distinct().ToList();
または、ToList() を呼び出す必要はありません。
foreach(var value in mydict.Values.Distinct())
{
// deal with it.
}
編集:あなたの質問を読み違えて、辞書とは異なる値が必要だと思いました。上記のコードはそれを提供します。
キーは自動的に区別されます。だからただ使う
foreach(var key in mydict.Keys)
{
// deal with it
}
キーはディクショナリ内で区別されます。定義上。
したがって、 myDict.Keysは個別のキーのリストです。
個別のキーをループし、各値で何かを行う...
foreach( dictionary.Keys )
{
// your code
}
C# 3.0 を使用していて、LINQ にアクセスできる場合:
個別の値のセットを取得するだけです:
// you may need to pass Distinct an IEqualityComparer<TSource>
// if default equality semantics are not appropriate...
foreach( dictionary.Values.Distinct() )
{
}
ディクショナリが次のように定義されている場合:
Dictionary<string,MyType> theDictionary = ...
それからあなたはただ使うことができます
var distinctKeys = theDictionary.Keys;
これはDictionary.Keysプロパティを使用します。リストが必要な場合は、次を使用できます。
var dictionaryKeysAsList = theDictionary.Keys.ToList();
これは辞書なので、キーはすでに区別されています。
ディクショナリですべての個別の値を見つけようとしている場合 (キーとは対照的に - 質問では明確ではありませんでした)、次を使用できます。
var distinctDictionaryValues = theDictionary.Values.Distinct(); // .ToList();