उपयोग करते समय 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[]
अगर यह कोड अधिक तार्किक / पठनीय / पोषणीय (जब तक पाठ्यक्रम रूपांतरण के बनाता था के कारण ध्यान देने योग्य प्रदर्शन की समस्याओं जो मामले में मैं फिर से चाहते हैं यह मुझे पता है)।