如何通过linq聚合一列中的所有元素以获得字符串

时间:2012-08-14 11:49:56

标签: linq

如何将一列中的所有元素聚合为linq

的字符串

例如:   我有一个名为:Items的表和一列名为ListItem的表

                    ListItem
                      1
                      2
                      3

如何选择Column ListItem中的所有元素以包含字符串:123

(不选择列的每个值并连接在一起)

请大家帮忙!!!

4 个答案:

答案 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"