Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用LINQ将数据表行转换为单行_C#_Linq_Datatable - Fatal编程技术网

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

C# 使用LINQ将数据表行转换为单行,c#,linq,datatable,C#,Linq,Datatable,我在一个数据表中有一列和多行,我希望它们在一行中,并且不希望循环遍历数据表的每一行, 下面是示例数据表 Results ------- Clinet1 Clinet2 Clinet3 Clinet4 我想要一根像这样的线 Clinet1、Clinet2、Clinet3、Clinet4但使用LINQ而不使用for循环。 我尝试了下面的代码,但它对我不起作用 string Details = myDataTable.Rows .Cast&

我在一个数据表中有一列和多行,我希望它们在一行中,并且不希望循环遍历数据表的每一行, 下面是示例数据表

Results
-------
Clinet1
Clinet2
Clinet3
Clinet4
我想要一根像这样的线
Clinet1、Clinet2、Clinet3、Clinet4
但使用LINQ而不使用for循环。 我尝试了下面的代码,但它对我不起作用

string Details = myDataTable.Rows
                              .Cast<DataRow>()
                              .Where(x => x["Results"].ToString();
string Details=myDataTable.Rows
.Cast()
。其中(x=>x[“结果”].ToString();
用于此

string Details = String.join(",", myDataTable.Rows
                              .Cast<DataRow>()
                              .Where(x => x["Results"] == UserName).ToArray());
string Details=string.join(“,”,myDataTable.Rows
.Cast()
。其中(x=>x[“结果”]==用户名).ToArray();
您可以使用返回一个
IEnumerable
对象,其中泛型参数
T
DataRow
,并像这样将行连接到
字符串中

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

string Details = myDataTable.Rows.Cast<DataRow>()
.Where(x => x["Results"] == UserName)
.Select(i => i.ToString()).Aggregate((i, j) => i + "," + j)
string Details=myDataTable.Rows.Cast()
。其中(x=>x[“结果”]==用户名)
.Select(i=>i.ToString()).Aggregate((i,j)=>i+“,”+j)

LINQ也在内部使用循环。它只会使您的代码紧凑。什么是
UserName
?您想基于什么进行过滤吗?对不起,现在没有UserName过滤器,我正在进行int-query。@Sangram:基本上我不想在记录上进行itrate,这需要花费太多时间。这就是为什么我使用DataTable而不是DataReader。