2017-01-13 79 views
7

IEnumerable<SomeClass>'a sahip olduğumda, bir listesini (List<T> açısından) bilmiyorum ya da bilmiyorum () numaralı numarayı numaralandırmamaya dikkat edin. iki kez, ya da böyle bir şey). Bazen unutmak iyidir - -IList'e dökülüyor ve daha sonra boş ToList() öğesinden daha iyi olduğunda ToList() çağrılıyor mu?

Resharper IEnumerable olası çoklu numaralandırma hakkında beni uyarır ve quickfixes seçti sağlar:

  • Numaralandırma
  • listelemek için dizinin için

    • Numaralandırma

      Listelemek için Numaralandır'ı seçtiğimde, yeniden bir yerel değişken tanıtır ve IEnumerable'ı şu şekilde atar (örnek):

      var enumeratedItems = items as IList<SomeClass> ?? items.ToList(); 
      

      Şimdi sorum şu:

      Neden sadece items.ToList(); yapmak o değil

      ?

      İlk olarak IList<SomeClass> ürününü yayınlamaya çalışmanın avantajı nedir?

    cevap

    7

    Belki IEnumerable dökmeyi denemek önermek o Resharper yapmadan önce o ise ilk kontrol etmek bu yüzden sadece bir MEVCUT birinden yeni listesi yaratacaktır ToList() arayarak bu durumda, zaten bir listedir bir IList ya da değil ve Ancak, bu durumda, bazı masrafları olan ToList() işlemini gerçekleştiremeyiz.

    +0

    Oh Görüyorum, çok anlam ifade ediyor! Teşekkür ederim :) – Mafii