समस्या यह है कि आप List<T>.Reverse()
जो void
रिटर्न कॉल कर रहे है।
आप कर सकते थे या तो कार्य करें:
List<string> names = "Tom,Scott,Bob".Split(',').ToList<string>();
names.Reverse();
या:
IList<string> names = "Tom,Scott,Bob".Split(',').Reverse().ToList<string>();
बाद, अधिक महंगा है एक मनमाना IEnumerable<T>
पीछे के रूप में डेटा के सभी बफ़रिंग और फिर यह सब उपज शामिल है - जबकि List<T>
सभी जगहों को "जगह" में कर सकते हैं। ,
अधिक कुशल (अंतर यहाँ यह Enumerable.Reverse<T>()
विस्तार विधि कॉल कर रहा है कि, List<T>.Reverse()
उदाहरण विधि के बजाय है।) अभी तक आप इस्तेमाल कर सकते हैं:
string[] namesArray = "Tom,Scott,Bob".Split(',');
List<string> namesList = new List<string>(namesArray.Length);
namesList.AddRange(namesArray);
namesList.Reverse();
यह एक अनुचित आकार के किसी भी प्रतिरोधक बनाने से बचा जाता है - चार बयान लेने की लागत पर जहां कोई करेगा ... हमेशा के रूप में, असली उपयोग मामले में प्रदर्शन के खिलाफ पठनीयता का वजन।
स्रोत
2008-11-24 20:35:32
स्कीट एक जानवर है! – flesh
अच्छी तरह से विस्तृत, मैं वास्तव में सराहना की! –