Saya memiliki string:
var names = "Brian,Joe,Chris";
Apakah ada cara untuk mengubahnya menjadi List<string>
dibatasi oleh ,
dalam satu baris?
List<string> result = names.Split(new char[] { ',' }).ToList();
Atau bahkan lebih bersih dengan saran Dan:
List<string> result = names.Split(',').ToList();
new char[] { }
sebagian. Ini lebih mudah dibaca, setidaknya bagi saya .
System.LINQ
namespace?
The List<T>
memiliki konstruktor yang menerima IEnumerable<T>
:
List<string> listOfNames = new List<string>(names.Split(','));
Saya lebih suka ini karena ini mencegah satu daftar item dengan item kosong jika string sumber Anda kosong:
IEnumerable<string> namesList =
!string.isNullOrEmpty(names) ? names.Split(',') : Enumerable.Empty<string>();
Pisahkan string yang dipisahkan oleh karakter dan kembalikan semua elemen yang tidak kosong.
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
keluaran:
Welcome
To
Programming
Jika Anda sudah memiliki daftar dan ingin menambahkan nilai dari string yang dipisahkan, Anda dapat menggunakan AddRange
atau InsertRange
. Sebagai contoh:
existingList.AddRange(names.Split(','));
Gunakan paket nuget Stringify.Library
//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 = ';' });
for
loop, yang lebih membosankan, rawan kesalahan, dan tidak jelas.