лучший способ получить список объектов из списка KeyValuePair? - PullRequest
0 голосов
/ 23 июня 2011

У меня есть список KeyValuePairs, и я хочу отфильтровать его по значению ключа, так что в итоге я получу список значений, которые отфильтрованы (то есть - не будут содержать все значения, которые были в исходном списке).

Полагаю, возможно, лучший способ - это некая форма лямбда-выражения, но я не уверен, как этого добиться. Спасибо, Alon

Ответы [ 3 ]

5 голосов
/ 23 июня 2011

Попробуйте это:

var values = list.Where(x => x.Key == "whatever").Select(x => x.Value);

Это даст вам отфильтрованный список только значений.
Очевидно, вы можете изменить способ фильтрации ключей.

0 голосов
/ 23 июня 2011

Что вы ищете для комбинации методов расширения LINQ (зависит от того, что именно вы пытаетесь сделать).

Например, если бы у меня был Список фруктовчтобы их цвета и хотел получить коллекцию из которых фрукты красные, я бы сделал что-то вроде:

var fruits = new List<KeyValuePair<string,string>>() { 
             new KeyValuePair<string,string>("Apple", "Green"),
             new KeyValuePair<string,string>("Orange", "Orange"), 
             new KeyValuePair<string,string>("Strawberry", "Red"), 
             new KeyValuePair<string,string>("Cherry", "Red") 
        };

var redFruits = fruits.Where(kvp => kvp.Value == "Red").Select(kvp => kvp.Key);

// this would result in a IEnumberable<string> { "Strawberry", "Cherry" }
0 голосов
/ 23 июня 2011

Используйте следующее:

var filteredList = list.Where(x => x.Key == "Key");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...