2016-01-18 23 views
-2

我有一個DataTable中有多行的單列,我希望他們在單行中,並且不想循環遍歷每行數據表, 這裏是樣本數據表數據錶行到單行使用LINQ

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

我想得到一個字符串,如 Clinet1,Clinet2,Clinet3,Clinet4但使用LINQ沒有for循環。 我嘗試下面的代碼,但它不是爲我工作

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

LINQ也使用循環內部。它只會使你的代碼緊湊。 –

+0

什麼是'UserName'?你想過濾一些東西嗎? – Irshad

+0

對不起,現在沒有用戶名過濾器,我在做int查詢。 –

回答

0

使用LINQ:

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

使用String.join這一點。

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

您可以使用AsEnumerable返回一個IEnumerable<T>對象,其中泛型參數TDataRowString.Join參加行成string這樣;

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