Преобразовать строку в список <string> в одной строке?

У меня есть строка:

var names = "Brian,Joe,Chris";

Есть ли способ преобразовать это в List<string> с разделителем , в одну строку?

Ответ 1

List<string> result = names.Split(new char[] { ',' }).ToList();

Или даже более чистое предложение Дэна:

List<string> result = names.Split(',').ToList();

Ответ 2

List<T> имеет конструктор, который принимает IEnumerable<T>:

List<string> listOfNames = new List<string>(names.Split(','));

Ответ 3

Я предпочитаю это, потому что он предотвращает один список элементов с пустым элементом, если ваша исходная строка пуста:

  IEnumerable<string> namesList = 
      !string.isNullOrEmpty(names) ? names.Split(',') : Enumerable.Empty<string>();

Ответ 4

Если у вас уже есть список и вы хотите добавить значения из строки с разделителями, вы можете использовать AddRange или InsertRange. Например:

existingList.AddRange(names.Split(','));

Ответ 6

Используйте пакет 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 = ';' });