Лучший способ взять все пары строк запроса и создать словарь - PullRequest
5 голосов
/ 01 февраля 2010

Я хочу сохранить все пары ключ / значение в моей строке запроса:

www.example.com/?a=2&b=3&c=34

в словарь. Есть ли быстрый способ сделать это без необходимости вручную переключаться между всеми пунктами?

Ответы [ 2 ]

13 голосов
/ 01 февраля 2010

Попробуйте HttpUtility.ParseQueryString().

Возвращает NameValueCollection ваших ключей и значений.

0 голосов
/ 01 февраля 2010

Получить строку, которая находится после знака вопроса, разделить строку на символ '&'. Затем для каждой возвращаемой строки снова разделите символ '='.

Вы можете даже создать для него метод расширения.

public static class StringExtensions
{

    public Dictionary<string, string> ExtractQueryStringValues( this string target )
    {

        string queryString = target.Split (target.IndexOf ('?') + 1);

        string[] keyvaluePairs = queryString.Split ('&');

        Dictionary<string, string> result = new Dictionary<string, string>();

        foreach( string pair in keyvaluePairs )
        {
             var tmp = pair.Split ('=');

             result.Add (tmp[0], tmp[1]);
        }

        return result;

    }

}

Нечто подобное. Помните, что это небезопасно, так как не обрабатывает каждый крайний случай. (Например, учитывая строку, которая не имеет ничего после первого знака вопроса и т. Д.), Но она должна помочь вам начать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...