2016-08-05 57 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