C# Caractères string supprimés automatiquement… ???

Fermé
mf1608 Messages postés 9 Date d'inscription mercredi 19 mars 2014 Statut Membre Dernière intervention 6 juin 2016 - Modifié par *_Francis_* le 6/06/2016 à 22:00
Whismeril Messages postés 19027 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 24 avril 2024 - 6 juin 2016 à 21:50
Bonjour à tous,

Je suis face à un problème que je n’ai encore jamais vu,
J’ai une chaine de caractère (inputline) que je récupère dans un fichier et dont je fais le traitement suivant :
split = inputLine.Split(new Char[] { ' ' });
List<string> maListeSplit = new List<string>();
for (int i = 0; i < split.Length - 1; i++)
{
if (split[i] != " " && split[i] != "\n\r" && split[i] != "")
   maListeSplit.Add(split[i]);
}

Jusque-là, aucun souci…
Ensuite, je souhaite l’afficher de la sorte :

Console.WriteLine("Ma ligne : "+ maListeSplit[i]);


Et voici le résultat :
MaBonjour
Donc la chaine « Bonjour » correspond bien au contenu de ma variable maListeSplit[i] MAIS pourquoi il me supprime la fin de ma première chaine et/ou variable !!! Ici, il m’a supprimé « ligne » ???

Je ne comprends pas trop d’où vient le souci et toute aide sera la bienvenue…

Merci d’avance.
A voir également:

1 réponse

Whismeril Messages postés 19027 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 24 avril 2024 931
6 juin 2016 à 21:50
Bonsoir,

tu peux mettre une ligne exemple, le résultat attendu, et ton code entier?
Parce que ton code est un peu surprenant.

Pour le split, quand il n'y a qu'un séparateur, pas besoin d'initier un tableau
split = inputLine..Split(' ')


Pour le if
if (split[i] != " " && split[i] != "\n\r" && split[i] != "") 

Aucun enregistrement ne peut valoir " " puisque c'est le séparateur.
A priori, si tu as bien récupéré des lignes, ce qui est assez clairement définit dans inputLine, il n'y aura pas de "\n\r" non plus.
Et même au pire vu le traitement suivant une chaine vide ne sera pas gênante, mais peut être éjectée autrement.

Et enfin ça
Console.WriteLine("Ma ligne : "+ maListeSplit[i]);
qui n'est pas dans le for, donc on ne sait pas d'ou sort le i et quelle est sa valeur.

Surtout que ta description ne correspond pas tout à fait à ta sortie
Ici, il m’a supprimé « ligne » ???
, en fait c'est " ligne : " qui manque, donc 2 mots entourés d'espaces, qui peut être ont été virés dans une boucle que tu ne montres pas....
1