字典到列表(C#)

Chr*_*ris 3 c# dictionary list

这不是一个问题,但我很好奇是否有更好的方法.基本上,我有一个字典,其中键是我创建的结构.我需要做的是获取密钥中某个属性的列表.即在结构中我有一个名为'ID'的字段,我希望得到一个列表.我现在正在做的是:

List<long> keys = new List<long>();
foreach(var key in dict.Keys)
{
     keys.Add(key.ID);
}
Run Code Online (Sandbox Code Playgroud)

这是有效的,但我只是想知道我是否错过了一个更简单的方法 - 起初我想也许ToList方法可以给一个参数,所以我可以在列表中指定我想要的结构部分,但它没有'我似乎可以.

你们怎么改进这个?

Bol*_*ock 10

您可以使用LINQ:

List<long> keys = dict.Keys.Select(k => k.ID).ToList();
Run Code Online (Sandbox Code Playgroud)

在这里,您将ID传递给Select()而不是ToList(),并且仅调用ToList()将生成的集合转换为列表.


Jul*_*lia 6

使用Select(From Linq)进行投影并ToArray创建具体列表.(或者ToList如果您需要稍后修改生成的集合)

var keys = dict.Keys.Select(k => k.ID).ToArray();
Run Code Online (Sandbox Code Playgroud)