#c# #linq
#c# #linq
Вопрос:
У меня есть datatable dtRecords со значениями, подобными этому:
RollNo Имя
120 джон
121 Джонни
122 сэм
Я хочу добавить эти значения в поле списка, подобное приведенному ниже формату.
RollNo:[RollNo] , Name: [Имя]
Примечание: [RollNo] — формат идентификации имени столбца
Ожидаемый результат:
Номер ролла: 120, Имя: Джон
Номер ролла: 121 , Имя: Johney
Я могу добиться этого с помощью цикла for, но есть ли какой-то другой способ, например, с использованием linq или любой другой концепции.
Пожалуйста, включите примеры с вашими предложениями.
Я пытался использовать приведенный ниже код linq, но я не получил надлежащего вывода.
string mystring="RollNo:[RollNo] , Name: [Name]";
List<DataColumn> cols = ClsGlobal.dtRecords.Columns.Cast<DataColumn>().ToList();
dtRecords.AsEnumerable().ToList().ForEach(r => cols.ForEach(c =>listBox1.Items.Add(mystring.Replace("[" c.ColumnName "]", r[c.ColumnName].ToString()))));
Ответ №1:
Что-то вроде этого?
var query = (from c in dt.AsEnumerable()
select new { Value=c.Field<int>("RollNo"),
Text=c.Field<string>("Name")}).ToList();
А затем просто привяжите query
к списку.
Обновить
OP хочет только строки; так что это должно сработать:
var query = (from c in dt.AsEnumerable()
select "RollNo: " c.Field<int>("RollNo") " , Name: " c.Field<string>("Name")).ToList();
Комментарии:
1. спасибо тебе, Икар. возможно динамическое имя_столбца. Я буду ожидать «RollNo: [RollNo] , Name: [Имя],Mark1: [M1], ……» в этом формате
2. спасибо, Icarus работает нормально, возможно ли динамическое имя_столбца? возможный означает как?