我有以下类:如何从列表中获取特定财产的价值?
public class ClassA
{
public string Property1 { get; set; }
public string Property2 { get; set; }
public string Property3 { get; set; }
}
有一个List<ClassA>
类的实例。我如何从所有类中获得Property2
的值List<string>
?
我有以下类:如何从列表中获取特定财产的价值?
public class ClassA
{
public string Property1 { get; set; }
public string Property2 { get; set; }
public string Property3 { get; set; }
}
有一个List<ClassA>
类的实例。我如何从所有类中获得Property2
的值List<string>
?
您可以使用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);
}
您可以使用Select
var properties = listOfA.Select(x=>x.Property2);
或通过query syntax:
var list = new List<ClassA>();
var properties = from item in list
select item.Property2
要从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
下面的答案是否可以解决您的问题? –