Procédure : concaténer deux séquences (LINQ to SQL)
Utilisez l'opérateur Concat<TSource> pour concaténer deux séquences.
L'opérateur Concat<TSource> est défini pour les multijeux ordonnés pour lesquels l'ordre du destinataire et de l'argument est identique.
Le classement dans SQL est la dernière étape avant la génération des résultats. Par conséquent, l'opérateur Concat<TSource> est implémenté en utilisant UNION ALL et ne conserve pas l'ordre de ses arguments. Pour vérifier que le classement est correct dans les résultats, assurez-vous de classer les résultats explicitement.
Exemple
Cet exemple utilise Concat<TSource> pour retourner une séquence de tous les numéros de téléphone et de télécopie de Customer et Employee.
Dim custQuery = _
(From c In db.Customers _
Select c.Phone) _
.Concat _
(From c In db.Customers _
Select c.Fax) _
.Concat _
(From e In db.Employees _
Select e.HomePhone)
For Each custData In custQuery
Console.WriteLine(custData)
Next
IQueryable<String> custQuery =
(from cust in db.Customers
select cust.Phone)
.Concat
(from cust in db.Customers
select cust.Fax)
.Concat
(from emp in db.Employees
select emp.HomePhone)
;
foreach (var custData in custQuery)
{
Console.WriteLine(custData);
}
Cet exemple utilise Concat<TSource> pour retourner une séquence de tous les mappages de nom et de numéro de téléphone de Customer et Employee.
Dim infoQuery = _
(From cust In db.Customers _
Select Name = cust.CompanyName, Phone = cust.Phone) _
.Concat _
(From emp In db.Employees _
Select Name = emp.FirstName & " " & emp.LastName, _
Phone = emp.HomePhone)
For Each infoData In infoQuery
Console.WriteLine("Name = " & infoData.Name & _
", Phone = " & infoData.Phone)
Next
var infoQuery =
(from cust in db.Customers
select new { Name = cust.CompanyName, cust.Phone }
)
.Concat
(from emp in db.Employees
select new
{
Name = emp.FirstName + " " + emp.LastName,
Phone = emp.HomePhone
}
);
foreach (var infoData in infoQuery)
{
Console.WriteLine("Name = {0}, Phone = {1}",
infoData.Name, infoData.Phone);
}
Voir aussi
Référence
Traduction des opérateurs de requête standard (LINQ to SQL)