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

  • Kevin Bruckert

    Kevin Brucke

    30 Aralık 2006
  • Louis C.K.

    Louis C.K.

    18 HAZİRAN 2006
  • Menglong Tav

    Menglong Tav

    18 Temmuz 2010