Я викликаю REST API і отримую відповідь у форматі XML. Він повертає список імен робочих областей, і я пишу швидкий метод IsExistingWorkspace()
. Оскільки всі робочі області складаються з суміжних символів без пробілів, я припускаю, що найпростіший спосіб дізнатися, чи є певна робоча область у списку, - це видалити всі пробіли (включаючи нові рядки), і роблю це (XML - це рядок, отриманий з веб-запиту):
XML.Contains("<name>" + workspaceName + "</name>");
Я знаю, що це чутливо до регістру, і я покладаюся на це. Мені просто потрібен спосіб ефективно видалити всі пробіли у рядку. Я знаю, що RegEx і LINQ можуть це зробити, але я відкритий для інших ідей. Я в основному просто стурбований швидкістю.
Це найшвидший спосіб, який я знаю, хоча ви сказали, що не хочете використовувати регулярні вирази:
Regex.Replace(XML, @"\s+", "")
Спробуйте метод заміни рядка в C#.
XML.Replace(" ", string.Empty);
Я припускаю, що ваша XML-відповідь має такий вигляд:
var xml = @"<names>
<name>
foo
</name>
<name>
bar
</name>
</names>";
Найкращим способом обробки XML є використання аналізатора XML, такого як LINQ to XML:
var doc = XDocument.Parse(xml);
var containsFoo = doc.Root
.Elements("name")
.Any(e => ((string)e).Trim() == "foo");