Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# LinQ查询将列名与值连接并转换为列表_C#_Linq - Fatal编程技术网

C# LinQ查询将列名与值连接并转换为列表

C# LinQ查询将列名与值连接并转换为列表,c#,linq,C#,Linq,我有一个表数据,如下所示,我将把它填充到DataTable中 EmpID EmpName 1 John 2 Doe 3 Mary 我希望将每条记录转换为一个列表(列名称与每行的值连接),例如,该列表将包含以下3项: EmpID: 1 Empname: John EmpID: 2 Empname: Doe EmpID: 3 Empname: Mary 有人能告诉我如何使用LinQ实现这一点吗?也许这会对您有所帮助。尝试将Data

我有一个表数据,如下所示,我将把它填充到DataTable中

EmpID     EmpName
  1        John
  2         Doe 
  3        Mary
我希望将每条记录转换为一个列表(列名称与每行的值连接),例如,该列表将包含以下3项:

EmpID: 1 Empname: John
EmpID: 2 Empname: Doe
EmpID: 3 Empname: Mary

有人能告诉我如何使用LinQ实现这一点吗?

也许这会对您有所帮助。尝试将DataTable转换为列表。然后使用foreach遍历所有数据。这也会对你有所帮助。

试试这个:

var dt = new DataTable();
dt.Columns.Add("EmpID", typeof(int));
dt.Columns.Add("EmpName", typeof(string));
var dr = dt.NewRow();
dr.ItemArray = new object[] { 1, "John" };
dt.Rows.Add(dr);
dr = dt.NewRow();
dr.ItemArray = new object[] { 2, "Doe" };
dt.Rows.Add(dr);
dr = dt.NewRow();
dr.ItemArray = new object[] { 3, "Mary" };
dt.Rows.Add(dr);

var query =
    dt
        .AsEnumerable()
        .Select(x => String.Format(
            "EmpID: {0} EmpName: {1}",
            x.Field<int>(0),
            x.Field<string>(1)))
        .ToList();
var dt=new DataTable();
添加(“EmpID”,typeof(int));
添加(“EmpName”,typeof(string));
var dr=dt.NewRow();
dr.ItemArray=新对象[]{1,“John”};
dt.Rows.Add(dr);
dr=dt.NewRow();
dr.ItemArray=新对象[]{2,“Doe”};
dt.Rows.Add(dr);
dr=dt.NewRow();
dr.ItemArray=新对象[]{3,“Mary”};
dt.Rows.Add(dr);
变量查询=
dt
.可计算的()
.Select(x=>String.Format(
“EmpID:{0}EmpName:{1}”,
x、 字段(0),
x、 字段(1)))
.ToList();

您尝试了什么?多亏了Enigmativity,我也尝试了类似的查询,但这需要对字段名进行硬编码,这是我想要避免的,但现在我将使用这个。再次感谢。@Rajesh-为什么需要对字段名进行硬编码?我的意思是我们需要在LinQ查询中提到'EmpID'和'EmpName',这些名称是SQL查询中的别名,因此如果它们将来在select查询中更改别名,我认为应该在不更改LinQ查询中的名称的情况下处理它。@Rajesh-我们不需要硬编码它们。我这样做只是因为我用最简单的方式编写了代码。您当然可以从
数据集
中获取字段的名称。