如何将一列中的所有元素聚合为linq
的字符串例如: 我有一个名为:Items的表和一列名为ListItem的表
ListItem
1
2
3
如何选择Column ListItem中的所有元素以包含字符串:123
(不选择列的每个值并连接在一起)
请大家帮忙!!!
答案 0 :(得分:0)
假设您使用类型化数据作为List并且它具有id作为属性。然后将id聚合成一个你可以这样做的字符串。
string.Join(" ", listofEmployees.Select(e=>e.Id));
这将打印出像
1 2 3
答案 1 :(得分:0)
您可以使用Select
提取所需的值,并将它们合并为String.Join
var table = new DataTable("Items");
table.Columns.Add(new DataColumn("LiItem", typeof(int)));
table.Rows.Add(1);
table.Rows.Add(2);
table.Rows.Add(3);
Console.WriteLine(String.Join("", table.AsEnumerable().Select(r => r["LiItem"])));
输出:
123
答案 2 :(得分:0)
既然你说的是“Aggregate”,那么你可能有兴趣知道这是一个真正的LINQ方法:
var a = new[]{"1","2","3"};
var concatenated = a.Aggregate("",(t,s)=>t+s);
答案 3 :(得分:-1)
我认为string.Join的所有答案都不完整,因为此方法需要数组字符串,而不是 IEnumerable 。
这应该有用。
var data = ...
var result = string.Join(" ", data.Select(x => x.ListItem).ToArray());
这导致:
"1 2 3"