【问题标题】:Can I get a single properties values from a List<object>? [duplicate]我可以从 List<object> 中获取单个属性值吗? [复制]
【发布时间】:2017-10-26 15:15:23
【问题描述】:
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);
 } 

我有一个列表(字符串),我想用列表(对象)中某种类型参数的所有值填充它。我尝试使用 .FindAll 和 .Where 但它们带回了我希望仅提取单个值的对象集合。

我是否仅限于使用 For 循环来将其拉出,或者 Linq 是否有内置方法可以将其提取到“一行”中?

【问题讨论】:

    标签: c# .net


    【解决方案1】:

    这就是Select扩展方法的目的:

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

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

    【讨论】:

    • 比我快 39 秒 :)
    【解决方案2】:

    你可以通过一个简单的选择来做到这一点:

    properties.AddRange(ObjectList.Select(obj =&gt; obj.PropA));

    【讨论】:

      猜你喜欢
      • 2018-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多