Queryable.Concat<TSource>(IQueryable<TSource>, IEnumerable<TSource>) 메서드

정의

두 시퀀스를 연결합니다.Concatenates two sequences.

public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
 static System::Linq::IQueryable<TSource> ^ Concat(System::Linq::IQueryable<TSource> ^ source1, System::Collections::Generic::IEnumerable<TSource> ^ source2);
public static System.Linq.IQueryable<TSource> Concat<TSource> (this System.Linq.IQueryable<TSource> source1, System.Collections.Generic.IEnumerable<TSource> source2);
static member Concat : System.Linq.IQueryable<'Source> * seq<'Source> -> System.Linq.IQueryable<'Source>
<Extension()>
Public Function Concat(Of TSource) (source1 As IQueryable(Of TSource), source2 As IEnumerable(Of TSource)) As IQueryable(Of TSource)

형식 매개 변수

TSource

입력 시퀀스 요소의 형식입니다.The type of the elements of the input sequences.

매개 변수

source1
IQueryable<TSource>

연결할 첫 번째 시퀀스입니다.The first sequence to concatenate.

source2
IEnumerable<TSource>

첫 번째 시퀀스에 연결할 시퀀스입니다.The sequence to concatenate to the first sequence.

반환

IQueryable<TSource>

두 입력 시퀀스의 연결된 요소가 들어 있는 IQueryable<T>입니다.An IQueryable<T> that contains the concatenated elements of the two input sequences.

예외

source1 또는 source2null인 경우source1 or source2 is null.

예제

다음 코드 예제에서는를 사용 하 여 두 시퀀스를 연결 하는 방법을 보여 줍니다 Concat<TSource>(IQueryable<TSource>, IEnumerable<TSource>) .The following code example demonstrates how to use Concat<TSource>(IQueryable<TSource>, IEnumerable<TSource>) to concatenate two sequences.

class Pet
{
    public string Name { get; set; }
    public int Age { get; set; }
}

// This method creates and returns an array of Pet objects.
static Pet[] GetCats()
{
    Pet[] cats = { new Pet { Name="Barley", Age=8 },
                   new Pet { Name="Boots", Age=4 },
                   new Pet { Name="Whiskers", Age=1 } };
    return cats;
}

// This method creates and returns an array of Pet objects.
static Pet[] GetDogs()
{
    Pet[] dogs = { new Pet { Name="Bounder", Age=3 },
                   new Pet { Name="Snoopy", Age=14 },
                   new Pet { Name="Fido", Age=9 } };
    return dogs;
}

public static void ConcatEx1()
{
    Pet[] cats = GetCats();
    Pet[] dogs = GetDogs();

    // Concatenate a collection of cat names to a
    // collection of dog names by using Concat().
    IEnumerable<string> query =
        cats.AsQueryable()
        .Select(cat => cat.Name)
        .Concat(dogs.Select(dog => dog.Name));

    foreach (string name in query)
        Console.WriteLine(name);
}

// This code produces the following output:
//
// Barley
// Boots
// Whiskers
// Bounder
// Snoopy
// Fido


' This method creates and returns an array of Pet objects.
Shared Function GetCats() As Pet()
    Dim cats() As Pet = _
        {New Pet With {.Name = "Barley", .Age = 8}, _
         New Pet With {.Name = "Boots", .Age = 4}, _
         New Pet With {.Name = "Whiskers", .Age = 1}}

    Return cats
End Function

' This method creates and returns an array of Pet objects.
Shared Function GetDogs() As Pet()
    Dim dogs() As Pet = _
        {New Pet With {.Name = "Bounder", .Age = 3}, _
         New Pet With {.Name = "Snoopy", .Age = 14}, _
         New Pet With {.Name = "Fido", .Age = 9}}

    Return dogs
End Function

Shared Sub ConcatEx1()
    Dim cats() As Pet = GetCats()
    Dim dogs() As Pet = GetDogs()

    ' Concatenate a collection of cat names to a
    ' collection of dog names by using Concat().
    Dim query As IEnumerable(Of String) = _
        cats.AsQueryable() _
        .Select(Function(cat) cat.Name) _
        .Concat(dogs.Select(Function(dog) dog.Name))

    For Each name As String In query
        MsgBox(name)
    Next
End Sub

Structure Pet
    Dim Name As String
    Dim Age As Integer
End Structure

' This code produces the following output:
'
' Barley
' Boots
' Whiskers
' Bounder
' Snoopy
' Fido

설명

Concat<TSource>(IQueryable<TSource>, IEnumerable<TSource>)메서드는 자신을 MethodCallExpression 생성 된 제네릭 메서드로 호출 하는을 생성 합니다 Concat<TSource>(IQueryable<TSource>, IEnumerable<TSource>) .The Concat<TSource>(IQueryable<TSource>, IEnumerable<TSource>) method generates a MethodCallExpression that represents calling Concat<TSource>(IQueryable<TSource>, IEnumerable<TSource>) itself as a constructed generic method. 그런 다음 MethodCallExpression CreateQuery<TElement>(Expression) IQueryProvider Provider 매개 변수의 속성이 나타내는의 메서드에를 전달 합니다 source1 .It then passes the MethodCallExpression to the CreateQuery<TElement>(Expression) method of the IQueryProvider represented by the Provider property of the source1 parameter.

호출을 나타내는 식 트리를 실행 한 결과로 발생 하는 쿼리 동작은 Concat<TSource>(IQueryable<TSource>, IEnumerable<TSource>) 매개 변수의 형식 구현에 따라 달라 집니다 source1 .The query behavior that occurs as a result of executing an expression tree that represents calling Concat<TSource>(IQueryable<TSource>, IEnumerable<TSource>) depends on the implementation of the type of the source1 parameter. 예상 되는 동작은의 요소가의 요소와 source2 연결 되어 source1 새 시퀀스를 만드는 것입니다.The expected behavior is that the elements in source2 are concatenated to those of source1 to create a new sequence.

적용 대상