2016-01-18 3 views
-2

У меня есть один столбец с нескольких строк в DataTable, я хочу их в одной строке, а не хотят цикл по каждой строке таблицы данных, Ниже приведен пример таблицы данныхDataTable строки в одной строке с помощью LINQ

Я хочу получить строку как Clinet1,Clinet2,Clinet3,Clinet4, но используя LINQ без цикла. я попытался код ниже, но он не работает для меня

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

LINQ также использует петли внутри. Он просто сделает ваш код компактным. –

+0

Что такое 'UserName'? Вы хотите фильтровать на основе чего-то? – Irshad

+0

Извините, теперь нет фильтра UserName, я делаю запрос 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> объект, где универсальный параметр T является DataRow и String.Join присоединиться строки в string, как это;

string rows = string 
        .Join(",", myDataTable.AsEnumerable() 
        .Select(x => x["Results"])); 
Смежные вопросы