department
に基づいてEmployee
をフィルタリングする必要があります。 LINQでも同じことができます。Lambda Joinステートメントの条件
Linq
およびlambda
同じ結果が得られるようにコンパイルします。コンパイラはコンパイルする前にクエリ式を等価のLambda expression
に変更するため、生成されたILはまったく同じになります。 Source
私はできません。このラムダvar deptCollection = new List<Dept>(); var employeeCollection = new List<Employee>(); employeeCollection.Add(new Employee { Id = 1, Name = "Eldho" }); deptCollection.Add(new Dept { DepetarmentName = "a", EmployeeId = 3 }); deptCollection.Add(new Dept { DepetarmentName = "a", EmployeeId = 1 }); var empinadept = (from e in employeeCollection from dep in deptCollection where e.Id == dep.EmployeeId && dep.DepetarmentName == "a" select e) .ToList();
var empindeptLamda = employeeCollection
.Join(deptCollection,
emp => emp.Id, dep => dep.EmployeeId,
(em, dep) => em.Id == dep.EmployeeId
&& dep.DepetarmentName == "a")
.ToList();
class Employee
{
public int Id { get; set; }
public string Name { get; set; }
}
class Dept
{
public int EmployeeId { get; set; }
public string DepetarmentName { get; set; }
}
Q1で.Where
句を追加することができます。上記のlinqの等価ラムダステートメントは何ですか?(このための方法-構文でLINQのような句
もっと読みやすい形式を使用してください... –
[それはLinqかLambdaですか?](http://stackoverflow.com/questions/7391370/is-it-linq-or-lambda)この投稿はかなり良いです – Timmy
基本的には両方ともLinqですが、一方はクエリ構文であり、もう一方はメソッド構文です。 – HimBromBeere