/// <summary> /// Выполняет парсинг параметров, заданных в виде массива строк. /// <para>Каждый элемент массива <paramref name="parameters"/> представляет пару параметр-значение.</para> /// <para>Если элемент массива является null, пустой строкой или строкой, содержащей только пробельные символы, то этот элемент пропускается.</para> /// <para>Ожидаемый формат параметра (элемента массива <paramref name="parameters"/>): <имя параметра><разделитель имени параметра и значения><значение параметра>. Значение параметра может быть пустой строкой.</para> /// <para>В качестве компаратора ключей словаря, где ключ — имя параметра, используется <see cref="StringComparer.OrdinalIgnoreCase"/>.</para> /// </summary> /// <param name="parameters"> /// Массив строк, каждый элемент которого представляет отдельную пару параметр-значение. /// <para>Не может быть null.</para> /// </param> /// <returns>Словарь <see cref="IDictionary{TKey, TValue}"/>.</returns> public static IDictionary <string, string> ParseParametersDictionary(string[] parameters) => ParseParametersDictionary(parameters: parameters.Arg(nameof(parameters)), parameterNameDelimiter: ParameterNameDefaultDelimiter.Arg("parameterNameDelimiter"));
/// <summary> /// Выполняет парсинг параметров, заданных в виде массива строк. /// <para>Каждый элемент массива <paramref name="parameters"/> представляет пару параметр-значение.</para> /// <para>Если элемент массива является null, пустой строкой или строкой, содержащей только пробельные символы, то этот элемент пропускается.</para> /// <para>Ожидаемый формат параметра (элемента массива <paramref name="parameters"/>): <имя параметра><разделитель имени параметра и значения (<paramref name="parameterNameDelimiter"/>)><значение параметра>. Значение параметра может быть пустой строкой.</para> /// <para>В качестве компаратора ключей словаря, где ключ — имя параметра, используется <see cref="StringComparer.OrdinalIgnoreCase"/>.</para> /// </summary> /// <param name="parameters"> /// Массив строк, каждый элемент которого представляет отдельную пару параметр-значение. /// <para>Не может быть null.</para> /// </param> /// <param name="parameterNameDelimiter"> /// Символ-разделитель имени параметра и его значения. /// <para>Не может быть пробельным символом (см. <seealso cref="char.IsWhiteSpace(char)"/>).</para> /// </param> /// <returns>Словарь <see cref="IDictionary{TKey, TValue}"/>.</returns> public static IDictionary <string, string> ParseParametersDictionary(string[] parameters, char parameterNameDelimiter) => ParseParametersDictionary(parameters: parameters.Arg(nameof(parameters)), parameterNameDelimiter: parameterNameDelimiter.Arg(nameof(parameterNameDelimiter)));