2016-08-12 52 views
2
List<double> Values = new List<double>(); 
foreach (var item in Level.Items) 
{ 
    Values.Add(item.Keys); 
} 

我是LINQ-Queries的新手,那么任何人都可以帮助如何在LINQ-Queries中编写上述代码。如何在LINQ查询中实现此目的?

+0

什么是'Keys'和'Items'的类型? – user3185569

+0

'item.Keys'类型是'double'和'Level.Items'''List ' – MVK

回答

5

试试这个:

List<double> Values = new List<double>(Level.Items.Select(item => item.Keys)); 

或者

List<double> Values = Level.Items.Select(item => item.Keys).ToList(); 

在您需要的项目加入到现有名单情况:

List<double> Values = new List<double>(); 

... 

Values.AddRange(Level.Items.Select(item => item.Keys)); 
+0

备受好评的'AddRange'函数:) +1 –

+1

只需添加到您的答案:OP声明“LINQ查询“,对我而言,”从x选择z“选择”。你也可以添加'var values = new List ((从Level.Items中的item选择item.Keys).ToList());' –

+0

@GeoffJames'.Select'是一个linq查询。 '.Concat'也是。你需要知道'Method Syntax'和'Query-Syntax',都使用Linq扩展方法。 – user3185569

3

使用Select

List<double> values = Level.Items.Select(item => item.Keys).ToList(); 

如果Keys是一家集由它自己的再使用SelectMany

List<double> values = Level.Items.SelectMany(item => item.Keys).ToList(); 
2

你可以做到这一点

List<double> Values = Level.Items.Select(a => a.Keys).ToList();