SORU
26 AĞUSTOS 2009, ÇARŞAMBA


Ilookup<TKey, TVal> vs İGrouping<TKey, TVal>

Sorun ILookup<TKey, TVal> IGrouping<TKey, TVal> arasındaki farklılıkları dile sahip oldum ve şimdi ben doğru anlamak eğer merak ediyorum. SERİ de bana ToLookup uzantısı bir yöntem verirken IGrouping öğeleri dizileri üreterek sorunu bileşik. Daha yakından baktım kadar aynı onlar gibi hissettim.

var q1 = 
    from n in N
    group n by n.MyKey into g
    select g;
// q1 is IEnumerable<IGrouping<TKey, TVal>>

Eşdeğerdir:

var q2 = N.GroupBy(n => n.MyKey, n => n);
// q2 is IEnumerable<IGrouping<TKey, TVal>>

Hangi görünüyor gibi:

var q3 = N.ToLookup(n => n.MyKey, n => n);
// q3 is ILookup<TKey, TVal>

Aşağıdaki eşleştirmelerin doğru muyum?

  1. IGrouping<TKey, TVal> bir değeri aslında elemanları (tek bir element yerine) bir dizi olduğu tek bir grup (anahtarlı sırası yani), KeyValuePair<TKey, TVal> paraleldir
  2. IEnumerable<IGrouping<TKey, TVal>> (IDictionary<TKey, TVal> . bir yineleme ne zaman benzer bir dizidir
  3. ILookup<TKey, TVal> bir değeri aslında bir dizi öğelerinin bulunduğu 15 ** Daha fazla gibi

CEVAP
26 AĞUSTOS 2009, ÇARŞAMBA


Evet, bunların hepsi doğru.

ILookup<TKey, TValue> ayrıca tüm anahtar/toplama çift olarak (veya yerine) özel anahtarları ararken sadece üzerinde yineleme yapabilirsiniz IEnumerable<IGrouping<TKey, TValue>> uzanır.

Ben temelde IDictionary<TKey, IEnumerable<TValue>> olarak *18 düşünüyoruz.

ToLookup olduğunu aklında bir "şimdi" GroupBy ertelenmiş ise operation (acil çalıştırma). Gibi olur, yol "Çek ETMENİZ çalıştığı" ne zaman başlıyorsun çekerek IGroupings sonucu GroupBy, okumak tüm verileri her neyse (çünkü yapamazsın geçiş grubu midway ile) iken diğer uygulamalar olabilir mümkün üretmek için bir akış sonucu. (SERİ İtme yapar; Olaylara aynı ETMENİZ beklenir.)

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Chilla Frilla™

    Chilla Frill

    7 Aralık 2006
  • SolidWorksTutoriels

    SolidWorksTu

    14 Kasım 2013
  • TurkishRoyal

    TurkishRoyal

    16 Ocak 2007