簡體   English   中英

將查詢字符串轉換為.Net中的鍵值對

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM