Aracılığıyla paylaş


İki Diziyi Birleştirme

İki diziyi Concat birleştirmek için işlecini kullanın.

Concat işleci, alıcı ve argümanın sıralamaları aynı olan sıralı çoklu kümeler için tanımlanır.

SQL'de sıralama, sonuçlar üretilmeden önceki son adımdır. Bu nedenle Concat ve UNION ALL kullanılarak gerçekleştirilen işleç, bağımsız değişkenlerinin sırasını korumaz. Sonuçlarda sıralamanın doğru olduğundan emin olmak için sonuçları açıkça sıralamayı unutmayın.

Örnek 1

Bu örnek, tüm Concat ve Customer telefon ve faks numaralarının dizisini döndürmek için Employee kullanır.

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

Örnek 2

Bu örnek, tüm Concat ve Customer ad ve telefon numarası eşlemelerinin tamamı için bir sıra döndürmek amacıyla Employee kullanır.

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

Ayrıca bakınız