Menggabungkan Dua Urutan

Concat Gunakan operator untuk menggabungkan dua urutan.

Operator Concat didefinisikan untuk multiset yang diurutkan di mana pesanan penerima dan argumennya sama.

Pemesanan di SQL adalah langkah terakhir sebelum hasil diproduksi. Untuk alasan ini, Concat operator diimplementasikan dengan menggunakan UNION ALL dan tidak mempertahankan urutan argumennya. Untuk memastikan pengurutan sudah benar dalam hasil, pastikan untuk secara eksplisit mengurutkan hasilnya.

Contoh 1

Contoh ini menggunakan Concat untuk mengembalikan urutan semua Customer dan Employee nomor telepon dan faks.

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);
}

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

Contoh 2

Contoh ini menggunakan Concat untuk mengembalikan urutan semua Customer dan Employee pemetaan nama dan nomor telepon.

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);
}
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

Lihat juga