From 9fedc93c04835f99c493df16055899a93cb69a26 Mon Sep 17 00:00:00 2001 From: Stephen Toub Date: Sat, 15 Feb 2020 03:10:26 -0800 Subject: [PATCH] Remove char[] allocation from XmlConverter.StripWhitespace (#32297) --- .../src/System/Xml/XmlConverter.cs | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/libraries/System.Private.DataContractSerialization/src/System/Xml/XmlConverter.cs b/src/libraries/System.Private.DataContractSerialization/src/System/Xml/XmlConverter.cs index 92342cc47e86a..c3a654f68429b 100644 --- a/src/libraries/System.Private.DataContractSerialization/src/System/Xml/XmlConverter.cs +++ b/src/libraries/System.Private.DataContractSerialization/src/System/Xml/XmlConverter.cs @@ -1146,17 +1146,19 @@ public static string StripWhitespace(string s) } if (count == s.Length) return s; - char[] chars = new char[count]; - count = 0; - for (int i = 0; i < s.Length; i++) + + return string.Create(count, s, (chars, s) => { - char ch = s[i]; - if (!IsWhitespace(ch)) + int count = 0; + for (int i = 0; i < s.Length; i++) { - chars[count++] = ch; + char ch = s[i]; + if (!IsWhitespace(ch)) + { + chars[count++] = ch; + } } - } - return new string(chars); + }); } private static string Trim(string s)