SORU
9 Temmuz 2009, PERŞEMBE


ToList aramak daha mı() ya da ToArray() ETMENİZ sorgular?

Ben de sık sık ilan ediyorum nerede bir sorgu değil mi eval düşündüğüm durum içine çalıştırmak. Bu birden çok kez yinelemek istiyorum, çünkü genelliklevepahalı hesaplamak için. Örneğin:

string raw = "...";
var lines = (from l in raw.Split('\n')
             let ll = l.Trim()
             where !string.IsNullOrEmpty(ll)
             select ll).ToList();

Bu gayet iyi çalışıyor.Amaeğer sonucu değiştirmek için gidiyorum eğer değilse, o zaman da ToArray() yerine ToList() arayabilirim.

ToArray ancak acaba() ilk ToList çağırarak uygulanır() ve sadece ToList aramaktan daha bu nedenle daha az verimli bellek().

Ben deli miyim? Sadece bellek ayrılmış iki kez olmayacak ToArray() - güvenli ve bilginin güvenli çağırayım mı?

CEVAP
9 Temmuz 2009, PERŞEMBE


Performans farkı List<T> dinamik olarak dizi boy olarak uygulanır beri önemsiz olacaktır. Arama da ToArray() (kullandığı bir iç Buffer<T> sınıfa büyümek dizi) ToList() (çağrı List<T>(IEnumerable<T>) kurucu) sona erecek olan bir madde koyarak onları bir diziye ve büyüyen dizi kadar uyuyor hepsini.

Eğer bu gerçeği teyit beton arzu ederseniz, hemen hemen aynı kod için aşağı kaynatın göreceksiniz Reflektör -- söz konusu yöntemlerin uygulanmasını kontrol.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Flash CS6 Video Tutorials for Beginners (Actionscript 3 Gaming)

    Flash CS6 Vi

    14 EYLÜL 2012
  • HTC

    HTC

    12 Ocak 2006
  • huyked

    huyked

    28 Mart 2008