เมื่อใช้ToList()จะมีผลกระทบต่อประสิทธิภาพที่ต้องพิจารณาหรือไม่
ฉันกำลังเขียนแบบสอบถามเพื่อดึงไฟล์จากไดเรกทอรีซึ่งเป็นแบบสอบถาม:
string[] imageArray = Directory.GetFiles(directory);
อย่างไรก็ตามเนื่องจากฉันชอบทำงานด้วยList<>แทนฉันจึงตัดสินใจที่จะใส่ ...
List<string> imageList = Directory.GetFiles(directory).ToList();
ดังนั้นจะมีผลกระทบต่อประสิทธิภาพการทำงานบางอย่างที่ควรพิจารณาเมื่อตัดสินใจทำการแปลงเช่นนี้หรือควรพิจารณาเมื่อจัดการกับไฟล์จำนวนมากเท่านั้น นี่เป็นการแปลงที่เล็กน้อยหรือไม่?
AddหรือRemoveฉันจะปล่อยให้มันเป็นIEnumerable<T>(หรือดีกว่าvar)
                EnumerateFilesแทนGetFilesดังนั้นจะมีเพียงหนึ่งอาร์เรย์จะถูกสร้างขึ้น
                GetFiles(directory)ตามที่ได้มีการดำเนินการในขณะนี้ .NET new List<string>(EnumerateFiles(directory)).ToArray()สวยเท่าไหร่ ดังนั้นGetFiles(directory).ToList()สร้างรายการสร้างอาร์เรย์จากนั้นสร้างรายการอีกครั้ง เช่นเดียวกับ 2kay พูดว่าคุณควรเลือกที่จะทำEnumerateFiles(directory).ToList()ที่นี่
                
List<T>ในความโปรดปรานของT[]ถ้ามันทำให้รหัสตรรกะมากขึ้น / อ่าน / การบำรุงรักษา (เว้นแต่ของหลักสูตรการแปลงถูกก่อให้เกิดความเห็นได้ชัดเจนปัญหาประสิทธิภาพการทำงานในกรณีที่ฉันอีกครั้ง เยี่ยมชมฉันเดา)