এর জন্য সঠিক বাক্য গঠন কী:
IList<string> names = "Tom,Scott,Bob".Split(',').ToList<string>().Reverse();
আমি কি গণ্ডগোল করছি? টিসোর্স বলতে কী বোঝায়?
উত্তর:
সমস্যাটি হচ্ছে আপনি কল করছেন 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);
স্ট্রিংস্প্লিটঅ্যাপশনগুলি রেকর্ডগুলি সরিয়ে দেয় যা কেবল একটি স্পেস চর হবে ...
List<string> names = "Tom,Scott,Bob".Split(',').Reverse().ToList();
এই এক কাজ করে।
এখানে আপনার কী অনুপস্থিত তা হ'ল বিপরীত () একটি শূন্য পদ্ধতি। কোনও পরিবর্তনকের বিপরীত () এর ফলাফল নির্ধারণ করা সম্ভব নয়। তবে আপনি এনিউমারেবল ব্যবহার করার ক্রম পরিবর্তন করতে পারেন e বিপরীত () এবং আপনার ফলাফল পান
var x = "Tom,Scott,Bob".Split(',').Reverse().ToList<string>()
পার্থক্যটি হ'ল এনিউমারেবল R বিপরীত () অকার্যকর রিটার্ন হওয়ার পরিবর্তে একটি আইয়ুনিউরেবল <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());
আউটপুট
অন্যদের পরামর্শ অনুসারে এখন আপনি স্পষ্টতই আদেশটিকে বিপরীত করতে পারেন।