Ответ 1
List<string> result = names.Split(new char[] { ',' }).ToList();
Или даже более чистое предложение Дэна:
List<string> result = names.Split(',').ToList();
У меня есть строка:
var names = "Brian,Joe,Chris";
Есть ли способ преобразовать это в List<string>
с разделителем ,
в одну строку?
List<string> result = names.Split(new char[] { ',' }).ToList();
Или даже более чистое предложение Дэна:
List<string> result = names.Split(',').ToList();
List<T>
имеет конструктор, который принимает IEnumerable<T>
:
List<string> listOfNames = new List<string>(names.Split(','));
Я предпочитаю это, потому что он предотвращает один список элементов с пустым элементом, если ваша исходная строка пуста:
IEnumerable<string> namesList =
!string.isNullOrEmpty(names) ? names.Split(',') : Enumerable.Empty<string>();
Если у вас уже есть список и вы хотите добавить значения из строки с разделителями, вы можете использовать AddRange
или InsertRange
. Например:
existingList.AddRange(names.Split(','));
Разбейте строку, разделенную символами, и верните все непустые элементы.
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
Используйте пакет 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 = ';' });