我想弄清楚如何编写一个LINQ查询,将返回子集合“名称”属性作为一个字符串。LINQ子查询子集合到字符串
我有一个BO有一个“选项”属性,其中的选项是“命令”对象中每个选项的“名称”属性。
我想结果看起来像
order.id = 12312
order.date = 12/03/10
order.options = "Option 1 Name, Option 2 Name, Option 3 Name"
我希望这是有道理的。感谢任何和所有的帮助!
我想弄清楚如何编写一个LINQ查询,将返回子集合“名称”属性作为一个字符串。LINQ子查询子集合到字符串
我有一个BO有一个“选项”属性,其中的选项是“命令”对象中每个选项的“名称”属性。
我想结果看起来像
order.id = 12312
order.date = 12/03/10
order.options = "Option 1 Name, Option 2 Name, Option 3 Name"
我希望这是有道理的。感谢任何和所有的帮助!
您可以使用集合:
options.Aggregate((current, next) => current + ", " + next);
注意,这会产生一个新的字符串为每操作,所以如果你的选项列表很长,你最好在StringBuilder上使用老派的方法
真棒,谢谢! – bill 2010-06-05 21:53:06
虽然Aggregate
将工作它有O(n )的表现。如果您需要更好的性能,您可以使用string.Join
。不幸的是这种方法不接受IEnumerable<string>
,所以你也必须使用ToArray
得到你想要的东西:
string.Join(", ", options.Select(o => o.Name).ToArray())
你可以发布你的查询中涉及的类的类定义吗?我认为这会让你的问题更清楚。 – 2010-06-05 21:14:00