32

次のコードを使用します。

string q = "userID=16555&gameID=60&score=4542.122&time=343114";

できれば自分のパーサーを書かずに、値を解析する最も簡単な方法は何でしょうか? と同じ機能を持つものを探していRequest.querystring["gameID"]ます。

4

6 に答える 6

83

とても簡単です... HttpUtility.ParseQueryString メソッドを使用します。

テストされていませんが、これは機能するはずです:

var qs = "userID=16555&gameID=60&score=4542.122&time=343114";
var parsed = HttpUtility.ParseQueryString(qs);
var userId = parsed["userID"]; 
//  ^^^^^^ Should be "16555".  Note this will be a string of course.
于 2012-08-14T16:43:34.270 に答える
22

このようにlinqでそれを行うことができます。

string query = "id=3123123&userId=44423&format=json";

Dictionary<string,string> dicQueryString = 
        query.Split('&')
             .ToDictionary(c => c.Split('=')[0],
                           c => Uri.UnescapeDataString(c.Split('=')[1]));

string userId = dicQueryString["userID"];

編集

HttpUtility.ParseQueryStringを使用できる場合は、はるかに簡単になり、LinQ の場合のように大文字と小文字が区別されません。

于 2012-08-14T16:51:43.563 に答える