Je voulais convertir une chaîne séparée par des virgules en un tableau de chaînes et également supprimer les espaces et les entrées vides. Par exemple, étant donné l'entrée:
string valueString = "sam, mike, , ,john , Tom and jerry , ";
Le résultat attendu serait les valeurs suivantes (ajustées, bien sûr):
sam
mike
john
Tom and Jerry
J'ai essayé la ligne de code suivante qui limite les valeurs, mais cela ne permet pas de supprimer les entrées "vides":
valueString.Split(',').Select(sValue => sValue.Trim()).ToArray();
Quelle serait la meilleure façon de réduire l’entrée et de nettoyer et vider les entrées qui pourraient en résulter?
Utiliser Trim avec StringSplitOptions.RemoveEmptyEntries
ne fonctionne pas car " "
n'est pas considéré comme une entrée vide. Vous devez faire un fractionnement normal, couper chaque élément, puis filtrer les chaînes vides.
valueString.Split(',')
.Select(x => x.Trim())
.Where(x => !string.IsNullOrWhiteSpace(x))
.ToArray();
En s’appuyant sur la réponse d’Anthony, cela le reconvertira également en une chaîne délimitée par des virgules:
valueString = string.Join(",", valueString.Split(',')
.Select(x => x.Trim())
.Where(x => !string.IsNullOrWhiteSpace(x))
.ToArray())