Saat menggunakan ToList(), apakah ada dampak kinerja yang perlu dipertimbangkan?
Saya sedang menulis kueri untuk mengambil file dari direktori, yang merupakan kueri:
string[] imageArray = Directory.GetFiles(directory);
Namun, karena saya lebih suka bekerja dengan List<>, saya memutuskan untuk memasukkan ...
List<string> imageList = Directory.GetFiles(directory).ToList();
Jadi, apakah ada semacam dampak kinerja yang harus dipertimbangkan ketika memutuskan untuk melakukan konversi seperti ini - atau hanya dipertimbangkan ketika berhadapan dengan sejumlah besar file? Apakah ini konversi yang dapat diabaikan?
Addatau Remove, saya akan membiarkannya IEnumerable<T>(atau bahkan lebih baik var)
EnumerateFilesdaripada GetFiles, jadi hanya satu array yang akan dibuat.
GetFiles(directory), seperti yang diterapkan di .NET saat ini, cukup banyak new List<string>(EnumerateFiles(directory)).ToArray(). Jadi GetFiles(directory).ToList()buat daftar, buat array dari itu, lalu buat daftar lagi. Seperti yang dikatakan 2kay, Anda harus memilih untuk melakukannya di EnumerateFiles(directory).ToList()sini.
List<T>mendukungT[]jika itu membuat kode lebih logis / dapat dibaca / dipelihara (kecuali tentu saja konversi itu menyebabkan masalah kinerja yang nyata dalam hal ini saya akan kembali kunjungi saya kira).