Как использовать Dictionary.Values.Where <TSource>(Funcпредикат) найти нужные значения? - PullRequest
3 голосов
/ 27 августа 2010

У меня есть словарь, как

Dictionary<string, bool> accValues = new Dictionary<string, bool>()

И я хочу получить значение bool для конкретного ключа. Я могу сделать это через foreach, как

foreach (KeyValuePair<string, bool> keypair in accValues)
            {
                if (keypair.Key == "SomeString")
                {
                    return keypair.Value;
                }
            }

Но как реализовать функцию Where?

1 Ответ

7 голосов
/ 27 августа 2010

Зачем перебирать каждую пару ключ / значение? Используйте

accValues["SomeString"]

или, если вы не хотите генерировать исключение, когда в словаре нет такого ключа:

accValue.TryGetValue("SomeString", out boolValue)

если вы хотите найти значение для ключа, которое соответствует некоторому произвольному предикату, вы можете использовать выражение вроде этого:

accValues.Where(kvp => kvp.Key == "SomeString").Select(kvp => kvp.Value).FirstOrDefault();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...