Effiziente Weise zu entfernen ALLE Leerzeichen aus String?

Ich rufe eine REST-API auf und erhalte eine XML-Antwort zurück. Sie gibt eine Liste von Arbeitsbereichsnamen zurück, und ich schreibe eine schnelle Methode "IsExistingWorkspace()". Da alle Arbeitsbereiche aus zusammenhängenden Zeichen ohne Leerzeichen bestehen, nehme ich an, dass der einfachste Weg, um herauszufinden, ob ein bestimmter Arbeitsbereich in der Liste ist, alle Leerzeichen (einschließlich Zeilenumbrüche) zu entfernen und dies zu tun (XML ist die Zeichenfolge aus der Web-Anfrage erhalten):

XML.Contains("<name>" + workspaceName + "</name>");

Ich weiß, dass die Groß- und Kleinschreibung beachtet wird, und ich verlasse mich darauf. Ich brauche nur einen Weg, um alle Leerzeichen in einer Zeichenkette effizient zu entfernen. Ich weiß, dass RegEx und LINQ es tun können, aber ich bin offen für andere Ideen. Ich bin vor allem nur über die Geschwindigkeit besorgt.

Lösung

Dies ist der schnellste Weg, den ich kenne, auch wenn Sie sagten, Sie wollten keine regulären Ausdrücke verwenden:

Regex.Replace(XML, @"\s+", "")
Kommentare (10)

Versuchen Sie die Methode replace der Zeichenfolge in C#.

XML.Replace(" ", string.Empty);
Kommentare (4)

Ich nehme an, Ihre XML-Antwort sieht so aus:

var xml = @"

                    foo


                    bar

            ";

Die beste Möglichkeit, XML zu verarbeiten, ist die Verwendung eines XML-Parsers wie LINQ to XML:

var doc = XDocument.Parse(xml);

var containsFoo = doc.Root
                     .Elements("name")
                     .Any(e => ((string)e).Trim() == "foo");
Kommentare (4)