处理看起来像查询字符串的字符串最简单的方法是什么?

时间:2013-08-24 12:45:34

标签: c# regex query-string

注意:关于Request.QueryString["parameter"]的问题

我将获得一个看起来像查询字符串的字符串,即遵循以下模式:

String s = "alpha=&beta=something&gamma=nothing";

我会使用正则表达式,但也许其他人可以建议一种更简洁的方法来分割并选择所包含键的值。建议?

最终,我需要将它们映射到IEnum<KeyValuePair>

4 个答案:

答案 0 :(得分:4)

尝试使用HttpUtility.ParseQueryString。 来自msdn:

// Parse the query string variables into a NameValueCollection.
NameValueCollection qscoll = HttpUtility.ParseQueryString(querystring);

http://msdn.microsoft.com/en-us/library/ms150046.aspx

答案 1 :(得分:1)

试试这个:

Dictionary&lt;string,string&gt; d = s.Split('&').Select(x => x.Split('='))
     .ToDictionary(x => x[0], x => x[1]);

答案 2 :(得分:1)

var pairs = s.Split("&");
var keyvaluepairs = pairs.
                    Select(i => 
                    { 
                        var data = i.Split("="); 
                        return new KeyValuePair(data[0], data[1]); 
                    });

答案 3 :(得分:1)

您可以致电HttpUtility.ParseQueryString

var nvc = HttpUtility.ParseQueryString(s);