Compartir a través de


Cómo: Concatenar dos secuencias (LINQ to SQL)

Utilice el operador Concat<TSource> para concatenar dos secuencias.

El operador Concat<TSource> se define para conjuntos múltiples ordenados en los que el orden del receptor y del argumento son el mismo.

En SQL, la ordenación es el último paso antes de que se generen los resultados. Por esta razón, el operador Concat<TSource> se implementa utilizando UNION ALL y no conserva el orden de sus argumentos. Para garantizar que el orden de los resultados es correcto, no olvide ordenar los resultados explícitamente.

Ejemplo

En este ejemplo se utiliza Concat<TSource> para devolver una secuencia de todos los números de teléfono y fax de Customer y 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);
            }

En este ejemplo se utiliza Concat<TSource> para devolver una secuencia de todas las asignaciones de números de teléfono y nombres de Customer y 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);
}

Vea también

Referencia

Conversión de operadores de consulta estándar (LINQ to SQL)

Otros recursos

Ejemplos de consultas (LINQ to SQL)