私は辞書に入れたいリストを持っていますが、簡単にするために、挿入される値はすべて同じになります。c#ToDictionary with ContainsKeyチェック
私はforeachループを使用できます。
List<string> list = new List<string>();
list.Add("Earth");
list.Add("Wind");
list.Add("Fire");
list.Add("Water");
list.Add("Water"); // Will NOT BE INSERTED using the foreach loop
var myDictionary= new Dictionary<string, int>();
foreach (string value in list)
{
if (!myDictionary.ContainsKey(value))
{
myDictionary.Add(value, 1);
}
}
上記は機能します。
しかし、私は次のように同じことを行うToDictionary使いたい - もちろん
Dictionary<string, int> myDictionary2 = list.ToDictionary(i => i, i => 1);
私は二回「水」を追加しているので、これは失敗します。
ToDictionaryを使用しているときに重複するエントリをチェックする正しい方法は何ですか?
これはうまくいくが、私はOPが本当にセットを望んでいるのだろうかと思っている。 – Gabe
@Gabe:質問の文脈であなたのコメントを理解していないか分かりませんか? – BrokenGlass
すべての値が1である辞書は基本的に単なる集合です。ユーザーが決して値にアクセスしない場合、実際の辞書は必要ありません。 – Gabe