C# 使用Linq“提取数据表值”;“C”;

C# 使用Linq“提取数据表值”;“C”;,c#,linq,C#,Linq,我有一个数据表dtRecords,其值如下: 罗尔诺姓名 120约翰 121约翰尼 122萨姆 我想在列表框中添加这些值,如下所示格式 罗尔诺:[罗尔诺],姓名:[姓名] 注意:[RollNo]是列名标识格式 预期输出: 罗尔诺:120,姓名:约翰 罗尔诺:121,姓名:约翰尼 我可以使用for循环来实现这一点,但是否有其他方法,例如使用linq或任何其他概念 请包括你的建议的例子 我尝试使用下面的linq代码,但没有得到正确的输出 string mystring="RollNo:[RollNo

我有一个数据表dtRecords,其值如下:

罗尔诺姓名

120约翰

121约翰尼

122萨姆

我想在列表框中添加这些值,如下所示格式

罗尔诺:[罗尔诺],姓名:[姓名]

注意:[RollNo]是列名标识格式

预期输出:

罗尔诺:120,姓名:约翰

罗尔诺:121,姓名:约翰尼

我可以使用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()))));
string mystring=“RollNo:[RollNo],Name:[Name]”;
List cols=ClsGlobal.dtRecords.Columns.Cast().ToList();
dtRecords.AsEnumerable().ToList().ForEach(r=>cols.ForEach(c=>listBox1.Items.Add(mystring.Replace(“[”+c.ColumnName+“]),r[c.ColumnName].ToString());
像这样的东西

var query = (from c in dt.AsEnumerable()
             select new { Value=c.Field<int>("RollNo"), 
             Text=c.Field<string>("Name")}).ToList();

谢谢你,伊卡洛斯。可以使用动态列名称。我希望使用“RollNo:[RollNo],Name:[Name],Mark1:[M1],…”这种格式。感谢Icarus工作正常,是否可以使用动态columnName?可能的方式如何?
var query = (from c in dt.AsEnumerable()
         select "RollNo: "+ c.Field<int>("RollNo")+ " , Name: "+ c.Field<string>("Name")).ToList();