Я озадачен нижеследующим.Способы написания LINQ C#
Я использую 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
Как я понимаю, с помощью одного =
неправильно (особенно в том случае, когда на ==
не применяется, так как вам нужно использовать equals
, но и с помощью and
является неправильным, так как правильное ключевое слово будет &&
если вы разрешили использовать ничего, кроме equals
в этом случае.
Я могу понять использование &&
и ==
в предложении где, что делает его еще более совершенны, что приведенный выше код может быть использован, так как он не даже компилировать.
Я что-то упустил? Если да, не могли бы вы указать мне, где я могу узнать об этом альтернативном методе написания LINQ?
Может быть «они» называют синтаксисом VB.NET. Но ты прав. В C# это '==' и '&&'. Не '=' и 'и'. –
@ SaniHuttunen действительно я думал о VB.NET, но даже это требует использования 'equals' – ericosg
Второй недействительный запрос, даже с исправлениями для операторов. Синтаксис 'join' -' join- в
на равен '. –