जवाबों:
समस्या यह है कि आप कॉल कर रहे हैं 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();
यह एक अनुचित आकार के किसी भी बफ़र्स को बनाने से बचा जाता है - चार बयान लेने की कीमत पर जहां कोई भी करेगा ... हमेशा की तरह, वास्तविक उपयोग के मामले में प्रदर्शन के खिलाफ पठनीयता को तौलना।
मुझे पता है कि यह प्रश्न काफी पुराना है, लेकिन मुझे एक समान समस्या थी, सिवाय इसके कि मेरे स्ट्रिंग में रिक्त स्थान शामिल थे। उन लोगों के लिए जो जानना चाहते हैं कि एक स्ट्रिंग को केवल अल्पविराम से अधिक कैसे अलग करें:
string str = "Tom, Scott, Bob";
IList<string> names = str.Split(new string[] {","," "},
StringSplitOptions.RemoveEmptyEntries);
StringSplitOptions उन रिकॉर्ड्स को हटा देता है जो केवल एक स्पेस चार होगा ...
List<string> names = "Tom,Scott,Bob".Split(',').Reverse().ToList();
यह काम करता है।
आपका यहाँ क्या गायब है। यह () एक शून्य विधि है। एक चर के लिए .Rerseerse () के परिणाम को निर्दिष्ट करना संभव नहीं है। हालाँकि आप Enumerable.Reverse () का उपयोग करने और अपना परिणाम प्राप्त करने के लिए ऑर्डर बदल सकते हैं
var x = "Tom,Scott,Bob".Split(',').Reverse().ToList<string>()
अंतर यह है कि Enumerable.Reverse () शून्य रिटर्न होने के बजाय एक IEnumerable <T> लौटाता है
अगर आप कोशिश कर रहे हैं
निम्नलिखित काम करना चाहिए:
string str = "Tom Cruise, Scott, ,Bob | at";
IEnumerable<string> names = str
.Split(new char[]{',', '|'})
.Where(x=>x!=null && x.Trim().Length > 0)
.Select(x=>x.Trim());
उत्पादन
अब आप स्पष्ट रूप से आदेश को उलट सकते हैं जैसा कि दूसरों ने सुझाव दिया है।