我试图找出确定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