2015-04-09 2 views
0

документация Microsoft для оператора равна Linq Присоединяйтесь говорит:Каково значение порядка ключей в операторе Linq Equals предложения join?

С равными, левая клавиша потребляет последовательность внешнего источника, а правая клавиша потребляет внутренний источник.

Я не понимаю, что это значит. Я не думал, что есть какая разница, какой порядок вы выбрали для ключей. Мои обычные критерии заключались в том, чтобы сначала выбрать кратчайшее выражение. Теперь мне интересно, повлияет ли мой выбор на производительность. Так почему я должен выбрать один заказ над другим?

+1

Если вы попытаетесь сделать это неправильно, вы получите синтаксические ошибки, поэтому у вас нет выбора. Это связано с тем, как выражение LINQ преобразуется в вызовы метода расширения компилятором. Вам просто нужно сделать это в соответствии с документацией. – Enigmativity

+0

Даже вы не сможете увидеть правую клавишу в intellisense, когда пытаетесь ввести ее в левой части, а компилятор будет генерировать синтаксическую ошибку, подобную этой. Имя не находится в области действия с левой стороны от равных. Рассмотрим замену выражений по обе стороны от равных. – HashCoder

+0

Я не получаю синтаксическую ошибку, когда меняю ключи. В документации только говорится, что левая сторона - внешняя, а правая - внутренняя. Я не хочу, чтобы вы указали, где именно. – user3905162

ответ

0

Я выясняю свою проблему. Я читал документацию C# Linq, но использовал Linq в VB. Я предположил, что Линк был одним и тем же на обоих языках. Но, по-видимому, C# более суетливый, чем VB. Поэтому я был прав, полагая, что предложение Join вводит внутреннюю переменную диапазона и что Equals не имеет к этому никакого отношения. По-видимому, C# требует, чтобы ключи находились в определенном порядке, но VB не волнует.

Смежные вопросы