Queryable.Zip Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Перегрузки
Zip<TFirst,TSecond,TResult>(IQueryable<TFirst>, IEnumerable<TSecond>, Expression<Func<TFirst,TSecond,TResult>>) |
Объединяет две последовательности, используя указанную функцию предиката. |
Zip<TFirst,TSecond,TThird>(IQueryable<TFirst>, IEnumerable<TSecond>, IEnumerable<TThird>) |
Создает последовательность кортежей с элементами из трех указанных последовательностей. |
Zip<TFirst,TSecond>(IQueryable<TFirst>, IEnumerable<TSecond>) |
Создает последовательность кортежей с элементами из двух указанных последовательностей. |
Zip<TFirst,TSecond,TResult>(IQueryable<TFirst>, IEnumerable<TSecond>, Expression<Func<TFirst,TSecond,TResult>>)
- Исходный код:
- Queryable.cs
- Исходный код:
- Queryable.cs
- Исходный код:
- Queryable.cs
Объединяет две последовательности, используя указанную функцию предиката.
public:
generic <typename TFirst, typename TSecond, typename TResult>
[System::Runtime::CompilerServices::Extension]
static System::Linq::IQueryable<TResult> ^ Zip(System::Linq::IQueryable<TFirst> ^ source1, System::Collections::Generic::IEnumerable<TSecond> ^ source2, System::Linq::Expressions::Expression<Func<TFirst, TSecond, TResult> ^> ^ resultSelector);
public static System.Linq.IQueryable<TResult> Zip<TFirst,TSecond,TResult> (this System.Linq.IQueryable<TFirst> source1, System.Collections.Generic.IEnumerable<TSecond> source2, System.Linq.Expressions.Expression<Func<TFirst,TSecond,TResult>> resultSelector);
static member Zip : System.Linq.IQueryable<'First> * seq<'Second> * System.Linq.Expressions.Expression<Func<'First, 'Second, 'Result>> -> System.Linq.IQueryable<'Result>
<Extension()>
Public Function Zip(Of TFirst, TSecond, TResult) (source1 As IQueryable(Of TFirst), source2 As IEnumerable(Of TSecond), resultSelector As Expression(Of Func(Of TFirst, TSecond, TResult))) As IQueryable(Of TResult)
Параметры типа
- TFirst
Тип элементов первой входной последовательности.
- TSecond
Тип элементов второй входной последовательности.
- TResult
Тип элементов результирующей последовательности.
Параметры
- source1
- IQueryable<TFirst>
Первая последовательность для объединения.
- source2
- IEnumerable<TSecond>
Вторая последовательность для объединения.
- resultSelector
- Expression<Func<TFirst,TSecond,TResult>>
Функция, которая определяет, как объединить элементы двух последовательностей.
Возвращаемое значение
Объект IQueryable<T>, содержащий объединенные элементы двух входных последовательностей.
Исключения
Параметр source1
или source2
имеет значение null
.
Примеры
В следующем примере кода показано, как использовать Zip метод для слияния двух последовательностей.
int[] numbers = { 1, 2, 3, 4 };
string[] words = { "one", "two", "three" };
var numbersAndWords = numbers.AsQueryable().Zip(words, (first, second) => first + " " + second);
foreach (var item in numbersAndWords)
Console.WriteLine(item);
// This code produces the following output:
// 1 one
// 2 two
// 3 three
Dim numbers() As Integer = {1, 2, 3, 4}
Dim words() As String = {"one", "two", "three"}
Dim numbersAndWords = numbers.AsQueryable().Zip(words, Function(first, second) first & " " & second)
For Each item In numbersAndWords
Console.WriteLine(item)
Next
' This code produces the following output:
' 1 one
' 2 two
' 3 three
Комментарии
Метод Zip создает объект , MethodCallExpression представляющий вызов Zip как сконструированный универсальный метод. Затем он передает в MethodCallExpressionCreateQuery<TElement>(Expression) метод объекта , IQueryProvider представленный свойством Providersource1
параметра .
Метод объединяет каждый элемент первой последовательности с элементом, который имеет тот же индекс во второй последовательности. Если последовательности имеют не одинаковое количество элементов, метод объединяет последовательности, пока не достигнет конца одного из них. Например, если одна последовательность содержит три элемента, а другая — четыре, результирующая последовательность будет содержать только три элемента.
Применяется к
Zip<TFirst,TSecond,TThird>(IQueryable<TFirst>, IEnumerable<TSecond>, IEnumerable<TThird>)
- Исходный код:
- Queryable.cs
- Исходный код:
- Queryable.cs
- Исходный код:
- Queryable.cs
Создает последовательность кортежей с элементами из трех указанных последовательностей.
public:
generic <typename TFirst, typename TSecond, typename TThird>
[System::Runtime::CompilerServices::Extension]
static System::Linq::IQueryable<ValueTuple<TFirst, TSecond, TThird>> ^ Zip(System::Linq::IQueryable<TFirst> ^ source1, System::Collections::Generic::IEnumerable<TSecond> ^ source2, System::Collections::Generic::IEnumerable<TThird> ^ source3);
public static System.Linq.IQueryable<(TFirst First, TSecond Second, TThird Third)> Zip<TFirst,TSecond,TThird> (this System.Linq.IQueryable<TFirst> source1, System.Collections.Generic.IEnumerable<TSecond> source2, System.Collections.Generic.IEnumerable<TThird> source3);
static member Zip : System.Linq.IQueryable<'First> * seq<'Second> * seq<'hird> -> System.Linq.IQueryable<ValueTuple<'First, 'Second, 'hird>>
<Extension()>
Public Function Zip(Of TFirst, TSecond, TThird) (source1 As IQueryable(Of TFirst), source2 As IEnumerable(Of TSecond), source3 As IEnumerable(Of TThird)) As IQueryable(Of ValueTuple(Of TFirst, TSecond, TThird))
Параметры типа
- TFirst
Тип элементов первой входной последовательности.
- TSecond
Тип элементов второй входной последовательности.
- TThird
Тип элементов третьей входной последовательности.
Параметры
- source1
- IQueryable<TFirst>
Первая последовательность для объединения.
- source2
- IEnumerable<TSecond>
Вторая последовательность для объединения.
- source3
- IEnumerable<TThird>
Третья последовательность для слияния.
Возвращаемое значение
Последовательность кортежей с элементами, взятыми из первой, второй и третьей последовательностей в указанном порядке.
Применяется к
Zip<TFirst,TSecond>(IQueryable<TFirst>, IEnumerable<TSecond>)
- Исходный код:
- Queryable.cs
- Исходный код:
- Queryable.cs
- Исходный код:
- Queryable.cs
Создает последовательность кортежей с элементами из двух указанных последовательностей.
public:
generic <typename TFirst, typename TSecond>
[System::Runtime::CompilerServices::Extension]
static System::Linq::IQueryable<ValueTuple<TFirst, TSecond>> ^ Zip(System::Linq::IQueryable<TFirst> ^ source1, System::Collections::Generic::IEnumerable<TSecond> ^ source2);
public static System.Linq.IQueryable<(TFirst First, TSecond Second)> Zip<TFirst,TSecond> (this System.Linq.IQueryable<TFirst> source1, System.Collections.Generic.IEnumerable<TSecond> source2);
static member Zip : System.Linq.IQueryable<'First> * seq<'Second> -> System.Linq.IQueryable<ValueTuple<'First, 'Second>>
<Extension()>
Public Function Zip(Of TFirst, TSecond) (source1 As IQueryable(Of TFirst), source2 As IEnumerable(Of TSecond)) As IQueryable(Of ValueTuple(Of TFirst, TSecond))
Параметры типа
- TFirst
Тип элементов первой входной последовательности.
- TSecond
Тип элементов второй входной последовательности.
Параметры
- source1
- IQueryable<TFirst>
Первая последовательность для объединения.
- source2
- IEnumerable<TSecond>
Вторая последовательность для объединения.
Возвращаемое значение
Последовательность кортежей с элементами, взятыми из первой и второй последовательностей в указанном порядке.