เมื่อใช้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[]
ถ้ามันทำให้รหัสตรรกะมากขึ้น / อ่าน / การบำรุงรักษา (เว้นแต่ของหลักสูตรการแปลงถูกก่อให้เกิดความเห็นได้ชัดเจนปัญหาประสิทธิภาพการทำงานในกรณีที่ฉันอีกครั้ง เยี่ยมชมฉันเดา)