我有一个数据表dtRecords的值如下:
RollNo 名称
约翰120
121 johney122 Sam
我想在列表框中添加这些值,格式如下。
RollNo:[RollNo], Name: [Name]
注:[RollNo]是ColumnName标识格式
预期输出:RollNo: 120,Name: John
RollNo: 121,Name: johnny
我可以使用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()))));
像这样?
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();