【问题标题】:"Elegant" way to get list of list of property values from List<T> of objects?从对象的 List<T> 获取属性值列表的“优雅”方式?
【发布时间】:2009-12-22 05:00:06
【问题描述】:

假设我有一个 Customer 类,它具有通常的属性:CustomerIDName 等。

作为查询的结果,我得到一个通用的客户对象列表:List&lt;Customer&gt;

有没有一种优雅的方法可以从此通用列表中获取 CustomerID 或 Name 属性值的数组/列表? (即 string[] customerIDs = ????)

我知道我可以执行 foreach 并在循环期间填充数组,但我只是想知道是否有更优雅的方式通过 LINQ 扩展和/或 lambda 表达式来执行此操作。

谢谢。

【问题讨论】:

    标签: c# .net generics


    【解决方案1】:

    如果您使用的是 LINQ,则可以执行以下操作:

    string[] customerIDs = list.Select(x => x.ID).ToArray();
    

    【讨论】:

    • 有没有办法在没有 LINQ 的情况下做类似的事情?由于我们仍在使用 C# 2.0,因此我目前无法使用它。
    • 没有“优雅”的方式来做到这一点。您需要创建一个大小合适的新数组,并在 for 循环中一个接一个地填充它。
    【解决方案2】:
    List customerList = GetCustomerList();
    
    var customerIDs =
        from c in customerList 
        select c.CustomerID;
    

    更多示例here

    【讨论】:

      猜你喜欢
      • 2011-08-10
      • 2010-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-28
      • 1970-01-01
      相关资源
      最近更新 更多