Ich möchte sicherstellen, dass _content nicht mit einem NewLine-Zeichen endet:
_content = sb.ToString().Trim(new char[] { Environment.NewLine });
Der obige Code funktioniert jedoch nicht, da Trim anscheinend keinen überladenen Parameter für eine Sammlung von Zeichenfolgen hat, sondern nur Zeichen.
Was ist der einfachste Einzeiler, um eine Enivronment.Newline vom Ende einer Zeichenfolge zu entfernen?
Antworten:
Folgendes funktioniert für mich.
oder
quelle
.Trim()
entfernt\r\n
für mich (mit .NET 4.0).quelle
Wie wäre es mit:
Es ist etwas ineffizient, wenn es mehrere Zeilenumbrüche gibt, aber es wird funktionieren.
Alternativ, wenn es Ihnen nichts ausmacht, zu trimmen (sagen wir)
"\r\r\r\r"
oder"\n\n\n\n"
anstatt nur"\r\n\r\n\r\n"
:quelle
Verwenden Sie das Framework. Die ReadLine () -Methode hat Folgendes zu sagen:
Das Folgende reicht also aus
quelle
Wie wäre es mit
quelle
Dadurch werden natürlich "\ r \ r \ r \ r" sowie "\ n \ n \ n \ n" und andere Kombinationen entfernt. Und in "Umgebungen", in denen NewLine nicht "\ n \ r" ist, kann es zu seltsamen Verhaltensweisen kommen :-)
Aber wenn Sie damit leben können, dann glaube ich, dass dies der effektivste Weg ist, neue Zeilenzeichen am Ende einer Zeichenfolge zu entfernen.
quelle
Wie wäre es einfach:
Dadurch werden alle Leerzeichen vom Ende der Zeichenfolge entfernt - nur dann ein Problem, wenn Sie Leerzeichen ohne Zeilenumbruch beibehalten möchten.
quelle
Eine Art Nichtantwort, aber der einfachste Weg, eine neue Zeile von einer Zeichenfolge abzuschneiden, besteht darin, die neue Zeile überhaupt nicht in der Zeichenfolge zu haben, indem sichergestellt wird, dass sie niemals von Ihrem eigenen Code gesehen wird. Das heißt, indem native Funktionen verwendet werden, die den Zeilenumbruch entfernen. Viele Stream- und File / Io-Methoden enthalten den Zeilenumbruch nicht, wenn Sie zeilenweise nach einer Ausgabe fragen. Möglicherweise muss jedoch etwas in a eingeschlossen werden
System.IO.BufferedStream
.Dinge wie
System.IO.File.ReadAllLines
können dieSystem.IO.File.ReadAllText
meiste ZeitReadLine
anstelle von verwendet werden und können verwendet werden, anstattRead
einmal mit dem richtigen Stream-Typ zu arbeiten (zBufferedStream
. B. ).quelle
Wie Markus betonte, macht TrimEnd den Job jetzt. In der Windows Phone 7.8-Umgebung musste ich Zeilenvorschübe und Leerzeichen von beiden Enden der Zeichenfolge abrufen. Nachdem ich verschiedene komplexere Optionen verfolgt hatte, wurde mein Problem nur mit Trim () gelöst - die folgenden Tests wurden gut bestanden
quelle
Ich musste die neuen Zeilen im gesamten Text entfernen. Also habe ich verwendet:
quelle