使用Linq“C#”提取DataTable值

时间:2011-11-11 07:45:15

标签: c# linq

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

RollNo 名称

120约翰

121 johney

122 sam

我想在列表框中添加这些值,如下面的格式。

RollNo:[RollNo],名称:[名称]

注意:[RollNo]是ColumnName标识格式

预期输出:

RollNo:120,姓名:John

RollNo: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 个答案:

答案 0 :(得分:3)

这样的东西?

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

然后将query绑定到ListBox。

<强>更新

OP只想要字符串;所以这应该这样做:

var query = (from c in dt.AsEnumerable()
         select "RollNo: "+ c.Field<int>("RollNo")+ " , Name: "+ c.Field<string>("Name")).ToList();