Извлекать значения с данными, используя Linq «C #»

#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 работает нормально, возможно ли динамическое имя_столбца? возможный означает как?