首页 新闻 会员 周边

在C#中创建带query string的url的最简单方法是什么

0
悬赏园豆:30 [已解决问题] 解决于 2016-09-05 12:20

比如已知:

  • https://q.cnblogs.com/list
  • key1与value1
  • key2与value2

想得到的结果是:

https://q.cnblogs.com/list?key1=value1&key2=value2
C#
dudu的主页 dudu | 高人七级 | 园豆:30994
提问于:2016-09-04 17:22
< >
分享
最佳答案
0

我的实现方法:
1)基于.NET Framework

var query = HttpUtility.ParseQueryString(string.Empty);
query["key1"] = "value1";
query["key2"] = "value2";
var queryString = query.ToString();
var uri = "https://q.cnblogs.com/list" + (string.IsNullOrEmpty(queryString) ? "" : "?") + queryString;

2)基于.NET Core

var queryString = new QueryString();
queryString += QueryString.Create("key1", "value1");            
queryString += QueryString.Create("key2", "value2");
var uri = "https://q.cnblogs.com/list" + queryString.ToUriComponent();

QueryString类是.NET Core中新增的,在Microsoft.AspNetCore.Http.Abstractions程序集中

dudu | 高人七级 |园豆:30994 | 2016-09-04 17:58

 第一种QueryString是NameValueCollection类型,感觉和Dictionary差不多,可能内部重写了ToString,猜的~

balahoho | 园豆:2050 (老鸟四级) | 2016-09-04 18:10

Core里面QueryString可以用+=倒是蛮有意思的

balahoho | 园豆:2050 (老鸟四级) | 2016-09-04 18:12

@balahoho: NameValueCollection会进行UrlEncode

dudu | 园豆:30994 (高人七级) | 2016-09-04 21:24
其他回答(2)
0

用字典啊,然后拼接url

收获园豆:15
balahoho | 园豆:2050 (老鸟四级) | 2016-09-04 17:28
0

我习惯用linq..select后jion

收获园豆:15
吴瑞祥 | 园豆:29449 (高人七级) | 2016-09-04 18:39
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册