2016-08-12 49 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();