2010-05-13 73 views
2

我有一个方法需要一个List<int>,这是一个ID列表。我的数据来源是Dictionary<int, string>,其中整数是我想要的清单。有没有比下面的代码更好的方式来获得这个?如何从字典<int, string>中提取列表<int>?

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

ExecuteMyMethod(list); 

回答

13

你可以做

var list = myDictionary.Keys.ToList(); 

或者

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

的美妙之处在于:-) – DaveDev 2010-05-13 22:57:38

6

是的,你可以使用Keys收藏列表的构造函数:

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

该解决方案不仅是优雅的简洁,但也适用于C#2和.NET 2。 – 2010-05-14 00:55:47

1

像Guffa说这是一件容易的事情优雅。 或

List<int> nList = myDictionary.Keys.ToList<int>(); 
相关问题