我可以从List <object>获取单个属性值吗?

时间:2017-10-26 15:15:24

标签: c# .net

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是否有内置方法可以在“一行”中提取它?

2 个答案:

答案 0 :(得分:9)

这是Select扩展方法的目的:

properties.AddRange(ListObject.Select(o => o.PropA));

Select会将每个对象的选定属性投影到新的可枚举中。

答案 1 :(得分:0)

您可以通过简单的选择来执行此操作:

properties.AddRange(ObjectList.Select(obj => obj.PropA));