Преимущества ручного поиска соединения в LINQ?
Является ли построение и использование метода ручного поиска (ILookup<T>
) более быстрым, чем использование соединения с Join
или GroupJoin
в локальной последовательности IEnumerable<T>
в LINQ?
Я где-то читал, что компилятор фактически переводит внутреннюю последовательность Join
и GroupJoin
в ILookup<T>
.
Каким бы преимуществам ILookup<T>
можно было использовать его на себе?
Ответы
Ответ 1
Это зависит. Если вы работаете с объектами, основанными на DataContext, соединение переводится полностью вниз на SQL-сервер через оператор select. ЕСЛИ его POCO (или, более конкретно, обычная коллекция CLR) или что-то еще, то да, его используют как ILookup.