আমার একটি স্ট্রিং রয়েছে:
var names = "Brian,Joe,Chris";
এটি কি এক লাইনে List<string>
সীমিত করে রূপান্তর করার কোনও উপায় আছে ,
?
আমার একটি স্ট্রিং রয়েছে:
var names = "Brian,Joe,Chris";
এটি কি এক লাইনে List<string>
সীমিত করে রূপান্তর করার কোনও উপায় আছে ,
?
for
লুপ ব্যবহার করা এড়াতে চান যা আরও ক্লান্তিকর, ত্রুটির প্রবণ এবং অস্পষ্ট।
উত্তর:
List<string> result = names.Split(new char[] { ',' }).ToList();
বা ড্যানের পরামর্শ অনুসারে ক্লিনার:
List<string> result = names.Split(',').ToList();
new char[] { }
অংশটি ছেড়ে চলে যাই । এটি আমার পক্ষে কমপক্ষে সেভাবে আরও পঠনযোগ্য ।
System.LINQ
নামস্থান?
এর List<T>
এমন একজন নির্মাতা রয়েছে যা গ্রহণ করে IEnumerable<T>
:
List<string> listOfNames = new List<string>(names.Split(','));
আমি এটি পছন্দ করি কারণ এটি যদি আপনার উত্সের স্ট্রিংটি খালি থাকে তবে খালি আইটেম সহ এটি একটি আইটেম তালিকাকে বাধা দেয়:
IEnumerable<string> namesList =
!string.isNullOrEmpty(names) ? names.Split(',') : Enumerable.Empty<string>();
অক্ষর দ্বারা সীমাবদ্ধ একটি স্ট্রিং বিভক্ত করুন এবং সমস্ত খালি উপাদানগুলিকে ফিরিয়ে দিন।
var names = ",Brian,Joe,Chris,,,";
var charSeparator = ",";
var result = names.Split(charSeparator, StringSplitOptions.RemoveEmptyEntries);
https://docs.microsoft.com/en-us/dotnet/api/system.string.split?view=netframework-4.8
string given="Welcome To Programming";
List<string> listItem= given.Split(' ').ToList();//Split according to space in the string and added into the list
আউটপুট:
Welcome
To
Programming
আপনার যদি ইতিমধ্যে একটি তালিকা থাকে এবং একটি সীমিত স্ট্রিং থেকে মান যুক্ত করতে চান, আপনি ব্যবহার করতে পারেন AddRange
বা InsertRange
। উদাহরণ স্বরূপ:
existingList.AddRange(names.Split(','));
স্ট্রিংফাই.লিবারি নুগেট প্যাকেজটি ব্যবহার করুন
//Default delimiter is ,
var split = new StringConverter().ConvertTo<List<string>>(names);
//You can also have your custom delimiter for e.g. ;
var split = new StringConverter().ConvertTo<List<string>>(names, new ConverterOptions { Delimiter = ';' });