Ich habe eine Zeichenfolge:
var names = "Brian,Joe,Chris";
Gibt es eine Möglichkeit, dies in eine List<string>
durch ,
eine Zeile getrennte umzuwandeln ?
for
Schleife zu verwenden, die langwieriger, fehleranfälliger und unklarer ist.
Ich habe eine Zeichenfolge:
var names = "Brian,Joe,Chris";
Gibt es eine Möglichkeit, dies in eine List<string>
durch ,
eine Zeile getrennte umzuwandeln ?
for
Schleife zu verwenden, die langwieriger, fehleranfälliger und unklarer ist.
Antworten:
List<string> result = names.Split(new char[] { ',' }).ToList();
Oder noch sauberer durch Dans Vorschlag:
List<string> result = names.Split(',').ToList();
new char[] { }
Teil weg . So ist es zumindest für mich besser lesbar .
System.LINQ
Namespace mitgebracht?
Der List<T>
hat einen Konstruktor, der Folgendes akzeptiert IEnumerable<T>
:
List<string> listOfNames = new List<string>(names.Split(','));
Ich bevorzuge dies, weil es eine einzelne Elementliste mit einem leeren Element verhindert, wenn Ihre Quellzeichenfolge leer ist:
IEnumerable<string> namesList =
!string.isNullOrEmpty(names) ? names.Split(',') : Enumerable.Empty<string>();
Teilen Sie eine durch Zeichen begrenzte Zeichenfolge und geben Sie alle nicht leeren Elemente zurück.
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
Ausgabe:
Welcome
To
Programming
Wenn Sie bereits eine Liste haben und Werte aus einer durch Trennzeichen getrennten Zeichenfolge hinzufügen möchten, können Sie AddRange
oder verwenden InsertRange
. Beispielsweise:
existingList.AddRange(names.Split(','));
Verwenden Sie das Nuget-Paket 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 = ';' });