以下、困っています。
次のような形式を使用して、プロジェクトで LINQ を使用しています。
var query =
from obj_i in set1
join obj_j in set2 on
new {
JoinField1 = obj_i.SomeField1,
JoinField2 = obj_i.SomeField2,
JoinField3 = obj_i.SomeField3,
JoinField4 = obj_i.SomeField4
}
equals
new {
JoinField1 = obj_j.SomeOtherField1,
JoinField2 = obj_j.SomeOtherField2,
JoinField3 = obj_j.SomeOtherField3,
JoinField4 = obj_j.SomeOtherField4
}
しかし、最近、以下も LINQ クエリを記述する「別の方法」であると言われました。
var query =
from obj_i in set1
join obj_j in set2 on
obj_i.SomeField1 = obj_j.SomeOtherField1 and
obj_i.SomeField2 = obj_j.SomeOtherField2 and
obj_i.SomeField3 = obj_j.SomeOtherField3 and
obj_i.SomeField4 = obj_j.SomeOtherField4
私が理解しているように、 single を使用するの=
は間違っています (特に、==
を使用する必要があるため by が適用されない場合equals
、しかし使用and
も間違ってい&&
ますequals
。
&&
where 節でのandの使用を理解できます==
。これにより、上記のコードが使用できることがさらに際立ちます。コンパイルすらされないからです。
何か不足していますか?もしそうなら、LINQ を書くこの代替方法についてどこで学べるか教えていただけますか?