我想弄清楚如何编写一个linq查询,它将子集合“name”属性作为字符串返回。
我有一个具有“options”属性的BO,其中的选项是“order”对象中每个选项的“name”属性。
我希望结果看起来像
order.id = 12312
order.date = 12/03/10
order.options = "Option 1 Name, Option 2 Name, Option 3 Name"
我希望这是有道理的。感谢您的帮助!
答案 0 :(得分:3)
虽然Aggregate
将起作用,但它具有O(n 2 )性能。如果您需要更好的性能,可以使用string.Join
。很遗憾,此方法不接受IEnumerable<string>
,因此您还必须使用ToArray
来获取所需内容:
string.Join(", ", options.Select(o => o.Name).ToArray())
答案 1 :(得分:0)
您可以使用Aggregate:
options.Aggregate((current, next) => current + ", " + next);
请注意,这会为每个操作生成一个新字符串,因此如果您的选项列表很长,那么最好使用StringBuilder的旧学校方法