【问题标题】:Get list of properties from List of objects从对象列表中获取属性列表
【发布时间】:2012-12-08 20:13:31
【问题描述】:

目前我使用foreach 循环返回object 属性列表。

 class X
 {
     List<X> Z = GetXlist();
     List<String> r = new List<String>();

     foreach (var z in Z)
     {
         r.Add(z.A);
     }

     return r;
}

有没有办法可以缩短它,这样我就不必编写 foreach 循环?

【问题讨论】:

标签: c#


【解决方案1】:

LINQ 就是答案。您可以使用它从您的对象集合“投影”到另一个集合 - 在本例中是对象属性值的集合。

List<string> properties = objectList.Select(o => o.StringProperty).ToList();

【讨论】:

    【解决方案2】:

    你可以使用 LINQ:

    List<X> Z = GetXlist();
    
    List<String> r = Z.Select(z => z.A).ToList();
    
    return r;
    

    或者只是,

    return GetXlist().Select(z => z.A).ToList();
    

    了解有关 LINQ 的更多信息。它相当很有用。

    【讨论】:

      【解决方案3】:
      List<string> properties = objectList.Select(o => o.StringProperty).ToList();
      

      您也可以通过私有OverLoading 方法并在 LINQ 查询中使用它。

      【讨论】:

      • 这对既定答案没有价值
      猜你喜欢
      • 1970-01-01
      • 2017-06-29
      • 1970-01-01
      • 2011-02-13
      • 1970-01-01
      • 2014-10-17
      • 2014-02-04
      • 2010-10-19
      相关资源
      最近更新 更多