SORU
21 EYLÜL 2010, Salı


SERİ OrderBy karşı ThenBy

Kimse arasındaki fark nedir: açıklayabilir

tmp = invoices.InvoiceCollection
              .OrderBy(sort1 => sort1.InvoiceOwner.LastName)
              .OrderBy(sort2 => sort2.InvoiceOwner.FirstName)
              .OrderBy(sort3 => sort3.InvoiceID);

ve

tmp = invoices.InvoiceCollection
              .OrderBy(sort1 => sort1.InvoiceOwner.LastName)
              .ThenBy(sort2 => sort2.InvoiceOwner.FirstName)
              .ThenBy(sort3 => sort3.InvoiceID);

Hangi veri 3 adet sipariş etmek istiyorum eğer doğru yaklaşım nedir?

CEVAP
21 EYLÜL 2010, Salı


GerekirkesinlikleOrderBy birden çok arama yerine kullanın. ThenBy. (Söz konusu parçalarından biri ThenBy kullanmak gerekiyordu sanırım. Bu yazının yazıldığı anda, iki parçacıkları aynıdır.)

Bunu öneririm:

tmp = invoices.InvoiceCollection
              .OrderBy(o => o.InvoiceOwner.LastName)
              .ThenBy(o => o.InvoiceOwner.FirstName)
              .ThenBy(o => o.InvoiceID);

Aynı adı her zaman nasıl kullanabileceğinizi unutmayın. Bu da eşittir:

tmp = from o in invoices.InvoiceCollection
      orderby o.InvoiceOwner.LastName,
              o.InvoiceOwner.FirstName,
              o.InvoiceID
      select o;

Eğer OrderBy birden çok kez adını etkin bir şekilde sırasını yeniden düzenlemektamamenüç defa... yani son çağrı etkin bir şekilde hakim olacak. Sanaolabilir(Nesneleri bu SERİ içinde) yazma

foo.OrderBy(x).OrderBy(y).OrderBy(z)

için eşdeğer olur

foo.OrderBy(z).ThenBy(y).ThenBy(x)

sıralama olarak sipariş kararlı, ama kesinlikle olmamalı:

  • Okumak çok zor
  • Tüm sırasını yeniden sıralar çünkü) gerçekleştirmek değil
  • Olabilir aslındadeğildiğer sağlayıcıları (SQL için örneğin ETMENİZ
  • OrderBy kullanılmak üzere tasarlanmıştır nasıl temelde değil.

OrderBy anlamı "en önemli" projeksiyon sipariş; ThenBy (tekrar) ikincil, üçüncül vb sipariş projeksiyonları belirtmek için kullanın.

Etkili bir şekilde, şöyle düşün: OrderBy(...).ThenBy(...).ThenBy(...) herhangi iki nesne için bir tek bileşik bir karşılaştırma oluşturmak, ve sonra sıra sıralamak için izin verirbir kezkompozit kullanarak karşılaştırma. İstediğin şey neredeyse kesin.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Bennythecoder

    Bennythecode

    25 Mart 2008
  • ibebrent

    ibebrent

    23 Temmuz 2007
  • SelmerSaxMan

    SelmerSaxMan

    24 HAZİRAN 2006