J'ai une ficelle:
var names = "Brian,Joe,Chris";
Est-il possible de convertir cela en un List<string>
délimité par ,
sur une ligne?
List<string> result = names.Split(new char[] { ',' }).ToList();
Ou même plus propre par la suggestion de Dan:
List<string> result = names.Split(',').ToList();
Le List<T>
a un constructeur qui accepte un IEnumerable<T>
:
List<string> listOfNames = new List<string>(names.Split(','));
Je préfère ceci car cela empêche une seule liste d'éléments avec un élément vide si votre chaîne source est vide:
IEnumerable<string> namesList =
!string.isNullOrEmpty(names) ? names.Split(',') : Enumerable.Empty<string>();
Fractionner une chaîne délimitée par des caractères et renvoyer tous les éléments non vides.
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
Si vous avez déjà une liste et souhaitez ajouter des valeurs à partir d'une chaîne délimitée, vous pouvez utiliser AddRange
ou InsertRange
. Par exemple:
existingList.AddRange(names.Split(','));