使用 LINQ 将数据表行转换为单行

本文关键字:转换 单行 数据表 LINQ 使用 | 更新日期: 2023-09-27 18:30:51

>我在数据表中有一列包含多行,我希望它们在一行中,并且不想遍历数据表的每一行,这是示例数据表

Results
-------
Clinet1
Clinet2
Clinet3
Clinet4

我想得到一个像这样的字符串 Clinet1,Clinet2,Clinet3,Clinet4但使用 LINQ 而不进行循环。我尝试了下面的代码,但它对我不起作用

string Details = myDataTable.Rows
                              .Cast<DataRow>()
                              .Where(x => x["Results"].ToString();

使用 LINQ 将数据表行转换为单行

使用 LINQ:

string Details = myDataTable.Rows.Cast<DataRow>()
.Where(x => x["Results"] == UserName)
.Select(i => i.ToString()).Aggregate((i, j) => i + "," + j)

为此使用 String.join。

string Details = String.join(",", myDataTable.Rows
                              .Cast<DataRow>()
                              .Where(x => x["Results"] == UserName).ToArray());
您可以使用

AsEnumerable 返回一个 IEnumerable<T> 对象,其中泛型参数 TDataRowString.Join将行联接到这样的string中;

    string rows = string
                    .Join(",", myDataTable.AsEnumerable()
                    .Select(x => x["Results"]));