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

mf1608 Messages postés 17 Statut Membre -  
 Utilisateur anonyme -
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.

1 réponse

  1. Utilisateur anonyme
     
    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