Queryable.Concat<TSource> Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Voegt twee reeksen samen.
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)
Type parameters
- TSource
Het type van de elementen van de invoerreeksen.
Parameters
- source1
- IQueryable<TSource>
De eerste reeks die moet worden samengevoegd.
- source2
- IEnumerable<TSource>
De volgorde die moet worden samengevoegd met de eerste reeks.
Retouren
Een IQueryable<T> die de samengevoegde elementen van de twee invoerreeksen bevat.
Uitzonderingen
source1 of source2 is null.
Voorbeelden
In het volgende codevoorbeeld ziet u hoe Concat<TSource>(IQueryable<TSource>, IEnumerable<TSource>) u twee reeksen kunt samenvoegen.
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
Opmerkingen
De Concat<TSource>(IQueryable<TSource>, IEnumerable<TSource>) methode genereert een MethodCallExpression die zichzelf aanroept Concat<TSource>(IQueryable<TSource>, IEnumerable<TSource>) als een samengestelde algemene methode. Vervolgens wordt de MethodCallExpression methode doorgegeven aan de CreateQuery<TElement>(Expression) methode van de IQueryProvider vertegenwoordigd door de Provider eigenschap van de source1 parameter.
Het querygedrag dat optreedt als gevolg van het uitvoeren van een expressiestructuur die aanroept Concat<TSource>(IQueryable<TSource>, IEnumerable<TSource>) , is afhankelijk van de implementatie van het type source1 parameter. Het verwachte gedrag is dat de elementen in source2 worden samengevoegd met die van het maken van source1 een nieuwe reeks.