我对以下内容感到困惑。
我一直在使用以下格式在我的项目中使用 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不适用=
的情况下,因为您需要使用,但 using也是错误的,因为正确的关键字将是如果您被允许使用任何东西,但在这种情况下。==
equals
and
&&
equals
我可以理解 where 子句中&&
and的使用==
,这使得上面的代码可以使用更加突出,因为它甚至不编译。
我错过了什么吗?如果是这样,您能否指出我可以在哪里学习这种编写 LINQ 的替代方法?