[英]Convert query string to key-value pair in .Net
如果我有這樣的字符串:
"Name=Irwin&Home=Caribbean&Preference=Coffee"
C#中有一個方法可以將其轉換為類似於Request.QueryString的鍵值對嗎?
您可以嘗試使用HttpUtility.ParseQueryString
。
var nvc = HttpUtility.ParseQueryString(yourString);
現在,對於最長的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);
但請注意,如果有多個具有相同名稱的鍵,它將拋出。
如果你想保護自己免受這個添加:
.GroupBy(p => p[0]).Select(p => p.First())
就在.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]);
你應該能夠根據&符號和等號分割這個字符串,然后將每個字符串輸入一個新的KeyValuePair:
Dictionary<string, string> myValues = new Dictionary<string,string>();
string[] elements = myString.Split('=','&');
for(int i=0;i<elements.Length; i+=2)
{
myValues.Add(elements[i], elements[i+1]);
}
這是簡單的,並且對字符串的格式做了很多假設,但它適用於您的示例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.