Я пытаюсь выяснить, есть ли объект 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()» - хорошая идея для меня. –
Для тех, кто предпочитает сокращенную версию: 'return keys.Any() && keys.All (dictionary.ContainsKey);' –