如何从Dictionary <int,string =“”>?</int,> </int>中提取List <int>

时间:2010-05-13 22:54:40

标签: c# linq-to-objects

我有一个方法,它采用List<int>,这是一个ID列表。我的数据源是Dictionary<int, string>,其中整数是我想要的列表。有没有比下面的代码更好的方法来获得这个?

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

ExecuteMyMethod(list);

3 个答案:

答案 0 :(得分:13)

你可以做到

var list = myDictionary.Keys.ToList();

或者

var list = myDictionary.Select(kvp => kvp.Key).ToList();

答案 1 :(得分:6)

是的,您可以在列表的构造函数中使用Keys集合:

List<int> list = new List<int>(myDictionary.Keys);

答案 2 :(得分:1)

像Guffa所说,这是一件轻松优雅的事。 或

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