public class ObjectClass
{
public string PropA { get; set; }
public string PropB { get; set; }
}
List<string> properties = new List<string>();
List<ObjectClass> ListObject= new List<ObjectClass>();
//Fill ListObject
//...
foreach (var obj in ListObject)
{
properties.Add(obj.PropA);
}
我有一个列表(字符串),我想用List(Object)中的某种类型参数的所有值填充。我尝试使用.FindAll和.Where,但那些带回我想要提取单个值的对象集合。
我是否限制使用For循环来解决这个问题,或者Linq是否有内置方法可以在“一行”中提取它?
答案 0 :(得分:9)
这是Select
扩展方法的目的:
properties.AddRange(ListObject.Select(o => o.PropA));
Select
会将每个对象的选定属性投影到新的可枚举中。
答案 1 :(得分:0)
您可以通过简单的选择来执行此操作:
properties.AddRange(ObjectList.Select(obj => obj.PropA));