我試圖找出確定Dictionary<string, string>
對象是否包含全部作爲鍵的一組string
對象的最佳方法。確定字典是否包含所有的一組鍵
我可能不做所以這裏任何意義的使用明確的組字符串的一些示例代碼:
public static bool ContainsKeys(this Dictionary<string, string> dictionary)
{
return dictionary.ContainsKey("fname") && dictionary.ContainsKey("lname") && dictionary.ContainsKey("address1") &&
dictionary.ContainsKey("city") && dictionary.ContainsKey("state") && dictionary.ContainsKey("zip");
}
這裏的想法是接受字符串任意一組爲keys
和檢查的鑰匙Dictionary<string, string>
對象包含keys
中的所有字符串。
我試圖下井這個LINQ道:雖然
public static bool ContainsKeys(this Dictionary<string, string> dictionary, string[] keys)
{
var query = from entry in dictionary
where keys.Contains(entry.Key)
select entry;
return query.Any();
}
我不知道如果我在正確的道路上 - 我想,如果我想知道如果包含dictionary
可能工作任何這些字符串作爲鍵。
謝謝! 'keys.Any()'的加入對我來說是個好主意。 – 2013-02-20 21:54:12
對於那些更喜歡縮短版本的人: 'return keys.Any() && keys.All(dictionary.ContainsKey);' – 2015-01-04 05:00:59