在一行中将 string 转换为 List < string > ?

我有一根绳子:

var names = "Brian,Joe,Chris";

有没有一种方法可以把它转换成由 ,在一行中分隔的 List<string>

352599 次浏览
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>();

如果您已经有一个列表,并且希望从分隔的字符串中添加值,则可以使用 AddRangeInsertRange。例如:

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

使用 Stringify. Library 的 nuget 包

//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 = ';' });

拆分由字符分隔的字符串并返回所有非空元素。

var names = ",Brian,Joe,Chris,,,";
var charSeparator = ",";
var result = names.Split(charSeparator, StringSplitOptions.RemoveEmptyEntries);

Https://learn.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

使用 分开函数对它们进行切片,使用 列表()函数将它们作为列表返回。

var names = "Brian,Joe,Chris";
List<string> nameList = names.Split(',').ToList();