【问题标题】:linq subquery child collection to stringlinq子查询子集合到字符串
【发布时间】:2010-06-05 21:04:22
【问题描述】:

我试图弄清楚如何编写一个 linq 查询,它将子集合“名称”属性作为字符串返回。

我有一个具有“选项”属性的 BO,其中选项是“订单”对象中每个选项的“名称”属性。

我希望结果看起来像

order.id = 12312
order.date = 12/03/10
order.options = "Option 1 Name, Option 2 Name, Option 3 Name"

我希望这是有道理的。感谢您的帮助!

【问题讨论】:

  • 您能否发布查询中涉及的类的类定义?我认为这将有助于使您的问题更清楚。

标签: c# linq subquery sum


【解决方案1】:

虽然Aggregate 可以工作,但它的性能为 O(n2)。如果您需要更好的性能,您可以使用string.Join。不幸的是,此方法不接受 IEnumerable<string>,因此您还必须使用 ToArray 来获得您想要的:

string.Join(", ", options.Select(o => o.Name).ToArray())

【讨论】:

    【解决方案2】:

    您可以使用聚合:

    options.Aggregate((current, next) => current + ", " + next);
    

    请注意,这会为每个操作生成一个新字符串,因此如果您的选项列表很长,最好使用 StringBuilder 的老式方法

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-02
      • 1970-01-01
      • 1970-01-01
      • 2020-08-22
      • 1970-01-01
      相关资源
      最近更新 更多