Partager via


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)

Autres ressources

Exemples de requêtes (LINQ to SQL)