Queryable.Concat<TSource> Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Concatène deux séquences.
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);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
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>
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")>]
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)
Paramètres de type
- TSource
Type des éléments des séquences d’entrée.
Paramètres
- source1
- IQueryable<TSource>
Première séquence à concaténer.
- source2
- IEnumerable<TSource>
Séquence à concaténer à la première séquence.
Retours
Qui IQueryable<T> contient les éléments concaténés des deux séquences d’entrée.
- Attributs
Exceptions
source1 ou source2 est null.
Exemples
L’exemple de code suivant montre comment utiliser Concat<TSource>(IQueryable<TSource>, IEnumerable<TSource>) pour concaténer deux séquences.
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
Remarques
La Concat<TSource>(IQueryable<TSource>, IEnumerable<TSource>) méthode génère un qui représente l’appel MethodCallExpressionConcat<TSource>(IQueryable<TSource>, IEnumerable<TSource>) lui-même en tant que méthode générique construite. Il passe ensuite la MethodCallExpressionCreateQuery<TElement>(Expression) méthode de l’objet IQueryProvider représenté par la Provider propriété du source1 paramètre.
Le comportement de requête qui se produit suite à l’exécution d’une arborescence d’expressions qui représente l’appel Concat<TSource>(IQueryable<TSource>, IEnumerable<TSource>) dépend de l’implémentation du type du source1 paramètre. Le comportement attendu est que les éléments inclus source2 sont concaténés à ceux de source1 créer une séquence.