我如何聚合一列中的所有元素以通过 linq 获得一个字符串
例如:我有一个名为:Items 的表和名为:ListItem 的表的一列
ListItem
1
2
3
如何选择 Column ListItem 中的所有元素以具有字符串:123
(不选择列的每个值并连接在一起)
谢谢大家的帮助!!!
我如何聚合一列中的所有元素以通过 linq 获得一个字符串
例如:我有一个名为:Items 的表和名为:ListItem 的表的一列
ListItem
1
2
3
如何选择 Column ListItem 中的所有元素以具有字符串:123
(不选择列的每个值并连接在一起)
谢谢大家的帮助!!!
假设您使用类型化数据作为 List 并且它具有 id 作为属性。然后将 id 聚合到一个字符串中,您可以这样做。
string.Join(" ", listofEmployees.Select(e=>e.Id));
这将像打印
1 2 3
您可以使用 aSelect
来提取您需要的值并将它们组合成一个字符串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
既然您说的是“聚合”,那么您可能有兴趣知道这是一个实际的 LINQ 方法:
var a = new[]{"1","2","3"};
var concatenated = a.Aggregate("",(t,s)=>t+s);
我认为 string.Join 的所有答案都不完整,因为此方法需要一个字符串数组,而不是IEnumerable。
这应该有效。
var data = ...
var result = string.Join(" ", data.Select(x => x.ListItem).ToArray());
这导致:
"1 2 3"