我有一個列表,我想將其放入字典中,爲了簡單起見,插入的值將全部相同。帶有ContainsKey的c#ToDictionary檢查
我可以使用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 2012-03-29 18:49:55
@加貝:不確定我不明白你在這個問題中的意見 - 你能澄清嗎? – BrokenGlass 2012-03-29 18:51:11
所有值爲1的字典基本上只是一個集合。如果用戶從不訪問這些值,則不需要實際的字典。 – Gabe 2012-03-29 18:57:49