Алгоритм для нахождения точек, которые находятся дальше друг от друга - лучше, чем O (n ^ 2)?

Мне нравится ответ Бьорна, однако решение, которое он предоставил, вводит в заблуждение, поскольку метод обновляет существующий параметр, а не добавляет его, если он не существует. Чтобы сделать его более безопасным, я адаптировал его ниже.

public static class UriExtensions
{
    /// <summary>
    /// Adds or Updates the specified parameter to the Query String.
    /// </summary>
    /// <param name="url"></param>
    /// <param name="paramName">Name of the parameter to add.</param>
    /// <param name="paramValue">Value for the parameter to add.</param>
    /// <returns>Url with added parameter.</returns>
    public static Uri AddOrUpdateParameter(this Uri url, string paramName, string paramValue)
    {
        var uriBuilder = new UriBuilder(url);
        var query = HttpUtility.ParseQueryString(uriBuilder.Query);

        if (query.AllKeys.Contains(paramName))
        {
            query[paramName] = paramValue;
        }
        else
        {
            query.Add(paramName, paramValue);
        }
        uriBuilder.Query = query.ToString();

        return uriBuilder.Uri;
    }
}
14
задан houbysoft 29 June 2011 в 17:18
поделиться