我有以下類:如何從列表中獲取特定財產的價值?
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
下面的答案是否可以解決您的問題? –