如何从Dictionary<int, string>中提取List<int>?

3

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

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

ExecuteMyMethod(list);
3个回答

14

你可以这样做

var list = myDictionary.Keys.ToList();

或者

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

1
简洁即美。 - DaveDev

6

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

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

这个解决方案不仅优雅,而且适用于C# 2和.NET 2。 - Jon Skeet

1

就像Guffa所说的那样,这是一件简单而优雅的事情。

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接