İlk cevap kabul edilen cevap olmamalıdır. Ben eski bir 2007 C # Microsoft MVP'siyim.
Kabul edilen yanıt aksine, ConvertAll
çok daha verimli kombinasyonu daha Select
ve ToList()
.
Her şeyden önce, ConvertAll
kesinlikle daha hızlıdır ve bunu yapmak için minimum miktarda bellek kullanır. Array.ConvertAll, Select ve ToArray ile aynıdır. Bu, daha büyük uzunlukta bir dizi veya bir döngü içindeki birçok çağrı ile çok daha belirgindir.
1) ConvertAll
son listenin boyutunu bilir ve temel dizinin yeniden tahsis edilmesini önler. ToList
() diziyi birden çok kez yeniden boyutlandırmaya devam eder.
2) ToList
arayüz IEnumerable<>
aramalarını yavaşlatırken , ConvertAll
ekstra aramalar veya aralık kontrolleri olmadan temeldeki dizide döngü yapacaktır.
3) Select fazladan bir IEnumerable<T>
nesne oluşturacaktır .