Как извлечь список <int>из словаря <int, string>? - PullRequest
2 голосов
/ 14 мая 2010

У меня есть метод, который принимает List<int>, который представляет собой список идентификаторов. Источник моих данных - Dictionary<int, string>, где целые числа - это то, что я хочу получить список. Есть ли лучший способ получить это, чем следующий код?

var list = new List<int>();
foreach (var kvp in myDictionary)
{
    list.Add(pair.Key);
}

ExecuteMyMethod(list);

Ответы [ 3 ]

13 голосов
/ 14 мая 2010

Вы могли бы сделать

var list = myDictionary.Keys.ToList();

Или

var list = myDictionary.Select(kvp => kvp.Key).ToList();
6 голосов
/ 14 мая 2010

Да, вы можете использовать коллекцию Keys в конструкторе списка:

List<int> list = new List<int>(myDictionary.Keys);
1 голос
/ 14 мая 2010

Как сказал Гуффа, это легко и элегантно. или

List<int> nList = myDictionary.Keys.ToList<int>();
...