Queryable.LeftJoin Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Перегрузки
| Имя | Описание |
|---|---|
| LeftJoin<TOuter,TInner,TKey,TResult>(IQueryable<TOuter>, IEnumerable<TInner>, Expression<Func<TOuter,TKey>>, Expression<Func<TInner,TKey>>, Expression<Func<TOuter,TInner,TResult>>, IEqualityComparer<TKey>) |
Сопоставляет элементы двух последовательностей на основе соответствующих ключей. Для сравнения ключей используется указанный IEqualityComparer<T>. |
| LeftJoin<TOuter,TInner,TKey,TResult>(IQueryable<TOuter>, IEnumerable<TInner>, Expression<Func<TOuter,TKey>>, Expression<Func<TInner,TKey>>, Expression<Func<TOuter,TInner,TResult>>) |
Сопоставляет элементы двух последовательностей на основе соответствующих ключей. Средство сравнения равенства по умолчанию используется для сравнения ключей. |
LeftJoin<TOuter,TInner,TKey,TResult>(IQueryable<TOuter>, IEnumerable<TInner>, Expression<Func<TOuter,TKey>>, Expression<Func<TInner,TKey>>, Expression<Func<TOuter,TInner,TResult>>, IEqualityComparer<TKey>)
- Исходный код:
- Queryable.cs
- Исходный код:
- Queryable.cs
Сопоставляет элементы двух последовательностей на основе соответствующих ключей. Для сравнения ключей используется указанный IEqualityComparer<T>.
public:
generic <typename TOuter, typename TInner, typename TKey, typename TResult>
[System::Runtime::CompilerServices::Extension]
static System::Linq::IQueryable<TResult> ^ LeftJoin(System::Linq::IQueryable<TOuter> ^ outer, System::Collections::Generic::IEnumerable<TInner> ^ inner, System::Linq::Expressions::Expression<Func<TOuter, TKey> ^> ^ outerKeySelector, System::Linq::Expressions::Expression<Func<TInner, TKey> ^> ^ innerKeySelector, System::Linq::Expressions::Expression<Func<TOuter, TInner, TResult> ^> ^ resultSelector, System::Collections::Generic::IEqualityComparer<TKey> ^ comparer);
public static System.Linq.IQueryable<TResult> LeftJoin<TOuter,TInner,TKey,TResult>(this System.Linq.IQueryable<TOuter> outer, System.Collections.Generic.IEnumerable<TInner> inner, System.Linq.Expressions.Expression<Func<TOuter,TKey>> outerKeySelector, System.Linq.Expressions.Expression<Func<TInner,TKey>> innerKeySelector, System.Linq.Expressions.Expression<Func<TOuter,TInner?,TResult>> resultSelector, System.Collections.Generic.IEqualityComparer<TKey>? comparer);
static member LeftJoin : System.Linq.IQueryable<'Outer> * seq<'Inner> * System.Linq.Expressions.Expression<Func<'Outer, 'Key>> * System.Linq.Expressions.Expression<Func<'Inner, 'Key>> * System.Linq.Expressions.Expression<Func<'Outer, 'Inner, 'Result>> * System.Collections.Generic.IEqualityComparer<'Key> -> System.Linq.IQueryable<'Result>
<Extension()>
Public Function LeftJoin(Of TOuter, TInner, TKey, TResult) (outer As IQueryable(Of TOuter), inner As IEnumerable(Of TInner), outerKeySelector As Expression(Of Func(Of TOuter, TKey)), innerKeySelector As Expression(Of Func(Of TInner, TKey)), resultSelector As Expression(Of Func(Of TOuter, TInner, TResult)), comparer As IEqualityComparer(Of TKey)) As IQueryable(Of TResult)
Параметры типа
- TOuter
Тип элементов первой последовательности.
- TInner
Тип элементов второй последовательности.
- TKey
Тип ключей, возвращаемых функциями селектора ключей.
- TResult
Тип элементов результата.
Параметры
- outer
- IQueryable<TOuter>
Первая последовательность для соединения.
- inner
- IEnumerable<TInner>
Последовательность для соединения с первой последовательностью.
- outerKeySelector
- Expression<Func<TOuter,TKey>>
Функция для извлечения ключа соединения из каждого элемента первой последовательности.
- innerKeySelector
- Expression<Func<TInner,TKey>>
Функция для извлечения ключа соединения из каждого элемента второй последовательности.
- resultSelector
- Expression<Func<TOuter,TInner,TResult>>
Функция для создания элемента результата из двух соответствующих элементов.
- comparer
- IEqualityComparer<TKey>
IEqualityComparer<T> хэш и сравнить ключи.
Возвращаемое значение
Объект IEnumerable<T> с элементами типа TResult , полученными путем выполнения левого внешнего соединения на двух последовательностях.
Исключения
outer или innerouterKeySelectorinnerKeySelector или resultSelector нет null.
Комментарии
Этот метод имеет по крайней мере один параметр типа, аргумент типа Expression<TDelegate> которого является одним из Func<T,TResult> типов.
Для этих параметров можно передать лямбда-выражение и скомпилировать его в Expression<TDelegate>лямбда-выражение.
Метод LeftJoin<TOuter,TInner,TKey,TResult>(IQueryable<TOuter>, IEnumerable<TInner>, Expression<Func<TOuter,TKey>>, Expression<Func<TInner,TKey>>, Expression<Func<TOuter,TInner,TResult>>, IEqualityComparer<TKey>) создает объект MethodCallExpression , представляющий LeftJoin<TOuter,TInner,TKey,TResult>(IQueryable<TOuter>, IEnumerable<TInner>, Expression<Func<TOuter,TKey>>, Expression<Func<TInner,TKey>>, Expression<Func<TOuter,TInner,TResult>>, IEqualityComparer<TKey>) себя как созданный универсальный метод.
Затем он передает MethodCallExpressionCreateQuery<TElement>(Expression) метод IQueryProvider метода, представленного Provider свойством outer параметра.
Поведение запроса, возникающее в результате выполнения дерева выражений, представляющего вызов LeftJoin<TOuter,TInner,TKey,TResult>(IQueryable<TOuter>, IEnumerable<TInner>,
Expression<Func<TOuter,TKey>>, Expression<Func<TInner,TKey>>,
Expression<Func<TOuter,TInner,TResult>>, IEqualityComparer<TKey>) , зависит от реализации типа outer параметра.
Ожидаемое поведение заключается в том, что левое внешнее соединение.
Функции outerKeySelector и innerKeySelector используются для извлечения ключей из outer и innerсоответственно.
Эти ключи сравниваются для равенства элементов из каждой последовательности.
Пара элементов хранится для каждого элемента, inner соответствующего элементу outer, а также пара для каждого элемента, outer в который нет совпадений inner.
resultSelector Затем функция вызывается для проецировать результирующий объект из каждой пары элементов.
Применяется к
LeftJoin<TOuter,TInner,TKey,TResult>(IQueryable<TOuter>, IEnumerable<TInner>, Expression<Func<TOuter,TKey>>, Expression<Func<TInner,TKey>>, Expression<Func<TOuter,TInner,TResult>>)
- Исходный код:
- Queryable.cs
- Исходный код:
- Queryable.cs
Сопоставляет элементы двух последовательностей на основе соответствующих ключей. Средство сравнения равенства по умолчанию используется для сравнения ключей.
public:
generic <typename TOuter, typename TInner, typename TKey, typename TResult>
[System::Runtime::CompilerServices::Extension]
static System::Linq::IQueryable<TResult> ^ LeftJoin(System::Linq::IQueryable<TOuter> ^ outer, System::Collections::Generic::IEnumerable<TInner> ^ inner, System::Linq::Expressions::Expression<Func<TOuter, TKey> ^> ^ outerKeySelector, System::Linq::Expressions::Expression<Func<TInner, TKey> ^> ^ innerKeySelector, System::Linq::Expressions::Expression<Func<TOuter, TInner, TResult> ^> ^ resultSelector);
public static System.Linq.IQueryable<TResult> LeftJoin<TOuter,TInner,TKey,TResult>(this System.Linq.IQueryable<TOuter> outer, System.Collections.Generic.IEnumerable<TInner> inner, System.Linq.Expressions.Expression<Func<TOuter,TKey>> outerKeySelector, System.Linq.Expressions.Expression<Func<TInner,TKey>> innerKeySelector, System.Linq.Expressions.Expression<Func<TOuter,TInner?,TResult>> resultSelector);
static member LeftJoin : System.Linq.IQueryable<'Outer> * seq<'Inner> * System.Linq.Expressions.Expression<Func<'Outer, 'Key>> * System.Linq.Expressions.Expression<Func<'Inner, 'Key>> * System.Linq.Expressions.Expression<Func<'Outer, 'Inner, 'Result>> -> System.Linq.IQueryable<'Result>
<Extension()>
Public Function LeftJoin(Of TOuter, TInner, TKey, TResult) (outer As IQueryable(Of TOuter), inner As IEnumerable(Of TInner), outerKeySelector As Expression(Of Func(Of TOuter, TKey)), innerKeySelector As Expression(Of Func(Of TInner, TKey)), resultSelector As Expression(Of Func(Of TOuter, TInner, TResult))) As IQueryable(Of TResult)
Параметры типа
- TOuter
Тип элементов первой последовательности.
- TInner
Тип элементов второй последовательности.
- TKey
Тип ключей, возвращаемых функциями селектора ключей.
- TResult
Тип элементов результата.
Параметры
- outer
- IQueryable<TOuter>
Первая последовательность для соединения.
- inner
- IEnumerable<TInner>
Последовательность для соединения с первой последовательностью.
- outerKeySelector
- Expression<Func<TOuter,TKey>>
Функция для извлечения ключа соединения из каждого элемента первой последовательности.
- innerKeySelector
- Expression<Func<TInner,TKey>>
Функция для извлечения ключа соединения из каждого элемента второй последовательности.
- resultSelector
- Expression<Func<TOuter,TInner,TResult>>
Функция для создания элемента результата из двух соответствующих элементов.
Возвращаемое значение
Объект IEnumerable<T> с элементами типа TResult , полученными путем выполнения левого внешнего соединения на двух последовательностях.
Исключения
outer или innerouterKeySelectorinnerKeySelector или resultSelector нет null.
Комментарии
Этот метод имеет по крайней мере один параметр типа, аргумент типа Expression<TDelegate> которого является одним из Func<T,TResult> типов.
Для этих параметров можно передать лямбда-выражение и скомпилировать его в Expression<TDelegate>лямбда-выражение.
Метод LeftJoin<TOuter,TInner,TKey,TResult>(IQueryable<TOuter>, IEnumerable<TInner>, Expression<Func<TOuter,TKey>>, Expression<Func<TInner,TKey>>, Expression<Func<TOuter,TInner,TResult>>) создает объект MethodCallExpression , представляющий LeftJoin<TOuter,TInner,TKey,TResult>(IQueryable<TOuter>, IEnumerable<TInner>, Expression<Func<TOuter,TKey>>, Expression<Func<TInner,TKey>>, Expression<Func<TOuter,TInner,TResult>>) себя как созданный универсальный метод.
Затем он передает MethodCallExpressionCreateQuery<TElement>(Expression) метод IQueryProvider метода, представленного Provider свойством outer параметра.
Поведение запроса, возникающее в результате выполнения дерева выражений, представляющего вызов LeftJoin<TOuter,TInner,TKey,TResult>(IQueryable<TOuter>, IEnumerable<TInner>,
Expression<Func<TOuter,TKey>>, Expression<Func<TInner,TKey>>,
Expression<Func<TOuter,TInner,TResult>>) , зависит от реализации типа outer параметра.
Ожидаемое поведение заключается в том, что левое внешнее соединение.
Функции outerKeySelector и innerKeySelector используются для извлечения ключей из outer и innerсоответственно.
Эти ключи сравниваются для равенства элементов из каждой последовательности.
Пара элементов хранится для каждого элемента, inner соответствующего элементу outer, а также пара для каждого элемента, outer в который нет совпадений inner.
resultSelector Затем функция вызывается для проецировать результирующий объект из каждой пары элементов.