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# 使用Lambda表达式合并没有联接的表_C#_Linq - Fatal编程技术网

C# 使用Lambda表达式合并没有联接的表

C# 使用Lambda表达式合并没有联接的表,c#,linq,C#,Linq,不使用JOIN关键字组合表 var res2 = from u in dtEmp.AsEnumerable() from v in dtDept.AsEnumerable() where u.Field<int>("DepartmentID") == v.Field<int>("DepartmentID") && u.

不使用JOIN关键字组合表

 var res2 = from u in dtEmp.AsEnumerable()
                       from v in dtDept.AsEnumerable()
                       where u.Field<int>("DepartmentID") == v.Field<int>("DepartmentID") &&
                       u.Field<double>("Salary") > 10000
                       select new
                       {
                           Name = u.Field<string>("Name"),
                           Department = v.Field<string>("DepartmentName")

                       };
var res2=来自dtEmp.AsEnumerable()中的u
从dtDept.AsEnumerable()中的v开始
其中u.Field(“部门ID”)==v.Field(“部门ID”)&&
u、 字段(“工资”)>10000
选择新的
{
名称=u.字段(“名称”),
部门=v.字段(“部门名称”)
};

如何在不使用Join关键字的情况下使用Lambda表达式执行相同的操作?

您的意思是要从SQL语法切换到方法链语法吗?i、 e:

var res2 = dtEmp.AsEnumerable()
    .SelectMany(u => dtDept.AsEnumerable(), (u, v) => new {u, v})
    .Where(@t => u.Field<int>("DepartmentID") == v.Field<int>("DepartmentID") &&
                u.Field<double>("Salary") > 10000).Select(@t => new
                {
                    Name = u.Field<string>("Name"),
                    Department = v.Field<string>("DepartmentName")
                });
var res2=dtEmp.AsEnumerable()
.SelectMany(u=>dtDept.AsEnumerable(),(u,v)=>new{u,v})
其中(@t=>u.Field(“部门ID”)==v.Field(“部门ID”)&&
u、 字段(“工资”)>10000)。选择(@t=>new
{
名称=u.字段(“名称”),
部门=v.字段(“部门名称”)
});

你说的“不加入”是什么意思<代码>其中u.Field(“DepartmentID”)==v.Field(“DepartmentID”)是一个连接,不是吗?嗯……我的意思是不使用连接关键字。连接关键字有什么问题?你需要lambda表达式?是的,我想要lambda表达式。@Pearl-好的!在查询语法中,您没有
join
关键字,但实际上这是一个连接。回想一下以前的SQL时代,我们在没有
Join
的情况下做同样的事情。