Réponses:
Cela supprimera toute combinaison de retours chariot et de retours à la ligne à partir de la fin de s:
s = s.TrimEnd(new char[] { '\r', '\n' });Edit : Ou comme JP le souligne gentiment, vous pouvez l'épeler plus succinctement comme suit:
s = s.TrimEnd('\r', '\n');s = s.TrimEnd()- comme le disent les documents:   si trimChars est nul ou un tableau vide, les caractères d'espacement Unicode sont supprimés à la place. - voir String.TrimEnd
                    '\r'et '\n'et rien d'autre, pas le caractère d'espace ' 'par exemple.
                    Si vous utilisez plusieurs plates-formes, vous êtes plus en sécurité en utilisant cette méthode.
value.TrimEnd(System.Environment.NewLine.ToCharArray());Il tiendra compte des différents caractères de retour à la ligne et de retour chariot.
tst.TrimEnd( '\r', '\n' )- est raisonnablement "sûre" dans la pratique puisque les principaux EOL ne sont [actuellement] que des combinaisons différentes de \ret \n, mais alexw est la "bonne" réponse. Laissez le CLR vous dire quels caractères sont dans la nouvelle ligne de cette plate-forme.  EOL n'a pas toujours été des combos de 0D et 0As
                    Environment.NewLinemais il ne semblait pas gérer les instances où \rétait présent sans \n.  TrimEnd('r','\n')semble être plus fiable dans ce cas.
                    String temp = s.Replace("\r\n","").Trim();sétant la chaîne d'origine. (Notez les majuscules)
replace()alors trim()pas surpuissant quand TrimEnd()peut faire le travail seul, ou suis - je manque quelque chose?
                    s.TrimEnd();Ce qui précède est tout ce dont j'avais besoin pour supprimer '\ r \ n' de la fin de ma chaîne.
La réponse votée me semble fausse. Premièrement, cela n'a pas fonctionné lorsque j'ai essayé, deuxièmement, si cela fonctionnait, je m'attendrais à ce que s.TrimEnd ('\ r', '\ n') ne supprime que soit un '\ r' ou un '\ n' , donc je devrais l'exécuter deux fois sur ma chaîne - une fois pour quand '\ n' était à la fin et la deuxième fois pour quand '\ r' était à la fin (maintenant que le '\ n' était supprimé) .
S'il y a toujours un seul CRLF, alors:
myString = myString.Substring(0, myString.Length - 2);S'il peut l'avoir ou non, alors:
Regex re = new Regex("\r\n$");
re.Replace(myString, "");Ces deux éléments (de par leur conception) supprimeront au plus un seul CRLF. Mettez en cache l'expression régulière pour les performances.
C'était trop facile - pour moi, je filtre certains éléments de courrier électronique. J'écris mon propre filtre de courrier indésirable personnalisé. Avec \ r et / ou \ n dans la chaîne, il effaçait tous les éléments au lieu de filtrer.
Donc, je viens de faire filter = filter.Remove ('\ n') et filter = filter.Remove ('\ r'). Je crée mon filtre de manière à ce qu'un utilisateur final puisse utiliser le Bloc-notes pour modifier directement le fichier afin qu'il ne soit pas possible de savoir où ces caractères pourraient s'intégrer - cela pourrait être autre qu'au début ou à la fin de la chaîne. Donc, les supprimer tous suffit.
Les autres entrées fonctionnent toutes, mais Supprimer pourrait être le plus simple?
J'ai appris un peu plus sur Regex à partir de cet article - un travail assez cool avec son utilisation ici.
filter = filter.Remove('\n').Remove('\r');
                    J'utilise beaucoup de niveau d'effacement
String donen = "lots of stupid whitespaces and new lines and others..."
//Remove multilines
donen = Regex.Replace(donen, @"^\s+$[\r\n]*", "", RegexOptions.Multiline);
//remove multi whitespaces
RegexOptions options = RegexOptions.None;
Regex regex = new Regex("[ ]{2,}", options);
donen = regex.Replace(donen, " ");
//remove tabs
char tab = '\u0009';
donen = donen.Replace(tab.ToString(), "");
//remove endoffile newlines
donen = donen.TrimEnd('\r', '\n');
//to be sure erase new lines again from another perspective
donen.Replace(Environment.NewLine, "");et maintenant nous avons une rangée propre
C'est ce que je dois travailler pour moi.
s.Replace("\r","").Replace("\n","")