Ефективний спосіб видалити ВСІ пробіли з рядка?

Я викликаю REST API і отримую відповідь у форматі XML. Він повертає список імен робочих областей, і я пишу швидкий метод IsExistingWorkspace(). Оскільки всі робочі області складаються з суміжних символів без пробілів, я припускаю, що найпростіший спосіб дізнатися, чи є певна робоча область у списку, - це видалити всі пробіли (включаючи нові рядки), і роблю це (XML - це рядок, отриманий з веб-запиту):

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

Я знаю, що це чутливо до регістру, і я покладаюся на це. Мені просто потрібен спосіб ефективно видалити всі пробіли у рядку. Я знаю, що RegEx і LINQ можуть це зробити, але я відкритий для інших ідей. Я в основному просто стурбований швидкістю.

Рішення

Це найшвидший спосіб, який я знаю, хоча ви сказали, що не хочете використовувати регулярні вирази:

Regex.Replace(XML, @"\s+", "")
Коментарі (10)

Спробуйте метод заміни рядка в C#.

XML.Replace(" ", string.Empty);
Коментарі (4)

Я припускаю, що ваша XML-відповідь має такий вигляд:

var xml = @"

                    foo


                    bar

            ";

Найкращим способом обробки XML є використання аналізатора XML, такого як LINQ to XML:

var doc = XDocument.Parse(xml);

var containsFoo = doc.Root
                     .Elements("name")
                     .Any(e => ((string)e).Trim() == "foo");
Коментарі (4)