2016-08-05 93 views
0

我有以下類:如何從列表中獲取特定財產的價值?

public class ClassA 
{ 
    public string Property1 { get; set; } 
    public string Property2 { get; set; } 
    public string Property3 { get; set; } 
} 

有一個List<ClassA>類的實例。我如何從所有類中獲得Property2的值List<string>

+0

下面的答案是否可以解決您的問題? –

回答

4

您可以使用Linq.Select這樣做:

List<ClassA> list = new List<ClassA> 
{ 
    new ClassA { Property2 = "value 1"}, 
    new ClassA { Property2 = "value 2"}, 
}; 

//This is method syntax 
var result = list.Select(item => item.Property2).ToList(); 

//This is query syntax 
var result = (from item in list 
      select item.Property2).ToList(); 

保持不就是ToList()不是必須的,在這裏只是爲了便於使用此代碼示例

Select基本上可以歸結類似於:

List<string> response = new List<string>(); 
foreach(var item in list) 
{ 
    response.Add(item.Property2); 
} 
3

您可以使用Select

var properties = listOfA.Select(x=>x.Property2); 

或通過query syntax

var list = new List<ClassA>(); 

    var properties = from item in list 
        select item.Property2 
0

要從Select(...).ToList()「模式」改變你也可以用現有的方法中List<T>該做的工作,即ConvertAll使用幾乎相同的確切代碼。

// source is your List<ClassA> 
var result = source.ConvertAll(item => item.Property2); 
// result is already a List<string> so no need for extra code