diff --git a/X10D/src/DictionaryExtensions.cs b/X10D/src/DictionaryExtensions.cs index 2f7ce38..359a81b 100644 --- a/X10D/src/DictionaryExtensions.cs +++ b/X10D/src/DictionaryExtensions.cs @@ -19,15 +19,25 @@ namespace X10D /// Returns a representing the dictionary as a key=value; set. public static string ToConnectionString(this IReadOnlyDictionary dictionary) { - static string SanitizeValue(T value) + static string SanitizeValue(string? value) { - return value is string str && - Regex.IsMatch(str, "\\s") - ? $"\"{str}\"" - : value.ToString(); + if (value is null) + { + return string.Empty; + } + + for (var index = 0; index < value.Length; index++) + { + if (char.IsWhiteSpace(value[index])) + { + return $"\"{value}\""; + } + } + + return value; } - var strings = dictionary.Select(o => $"{o.Key}={SanitizeValue(o.Value)}"); + var strings = dictionary.Select(o => $"{o.Key}={SanitizeValue(o.Value?.ToString())}"); return string.Join(";", strings); }