J'appelle une API REST et je reçois une réponse XML en retour. Celle-ci renvoie une liste de noms d'espaces de travail, et j'écris une méthode rapide IsExistingWorkspace()
. Étant donné que tous les espaces de travail sont constitués de caractères contigus sans espace, je suppose que le moyen le plus simple de savoir si un espace de travail particulier figure dans la liste est de supprimer tous les espaces (y compris les nouvelles lignes) et de faire ceci (le XML est la chaîne reçue de la requête Web) :
XML.Contains("<name>" + workspaceName + "</name>");
Je sais que le système est sensible à la casse, et je m'y fie. J'ai juste besoin d'un moyen de supprimer efficacement tous les espaces dans une chaîne. Je sais que RegEx et LINQ peuvent le faire, mais je suis ouvert à d'autres idées. Je suis surtout préoccupé par la vitesse.
Je suppose que votre réponse XML ressemble à ceci :
var xml = @"<names>
<name>
foo
</name>
<name>
bar
</name>
</names>";
La meilleure façon de traiter le XML est d'utiliser un analyseur XML, tel que LINQ to XML :
var doc = XDocument.Parse(xml);
var containsFoo = doc.Root
.Elements("name")
.Any(e => ((string)e).Trim() == "foo");