如果我有这样的字符串:
"Name=Irwin&Home=Caribbean&Preference=Coffee"
Run Code Online (Sandbox Code Playgroud)
C#中有一个方法可以将其转换为类似于Request.QueryString的键值对吗?
Bra*_*don 36
你可以尝试使用HttpUtility.ParseQueryString
.
var nvc = HttpUtility.ParseQueryString(yourString);
Run Code Online (Sandbox Code Playgroud)
xan*_*tos 18
现在,对于最长的LINQ表达......
var dict = "Name=Irwin&Home=Caribbean&Preference=Coffee"
.Split('&')
.Select(p => p.Split('='))
.ToDictionary(p => p[0], p => p.Length > 1 ? Uri.UnescapeDataString(p[1]) : null);
Run Code Online (Sandbox Code Playgroud)
但请注意,如果有多个具有相同名称的键,它将抛出.
如果你想保护自己免受这个添加:
.GroupBy(p => p[0]).Select(p => p.First())
Run Code Online (Sandbox Code Playgroud)
就在.ToDictionary
(之后.Select
)之前
这将采取key=value
多个中的第一个.更改.First()
到.Last()
拿最后一个.
您还可以使用ToDictionary()方法:
var input = "Name=Irwin&Home=Caribbean&Preference=Coffee";
var items = input.Split(new[] { '&' });
var dict = items.Select(item => item.Split(new[] {'='})).ToDictionary(pair => pair[0], pair => pair[1]);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
21158 次 |
最近记录: |