加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 将Dictionary加入querystring的最快方法是什么?

发布时间:2020-12-16 07:37:40 所属栏目:asp.Net 来源:网络整理
导读:我有以下数据: Dictionarystring,string dctParameters = new Dictionary(){ {"a",var1},{"b",var2},{"c",var3},....} 我想将“dctParameters”加入一个查询字符串. 以下方式中最快/最好的是什么?你能想到更好的方法吗? 第一种方法: StringBuilder data
我有以下数据:

Dictionary<string,string> dctParameters = new Dictionary(){
 {"a",var1},{"b",var2},{"c",var3},....
}

我想将“dctParameters”加入一个查询字符串.

以下方式中最快/最好的是什么?你能想到更好的方法吗?

第一种方法:

StringBuilder data = new StringBuilder();
string result = dctParameters.Aggregate(data,(x,pair) => data.Append(pair.Key).Append("=").Append(pair.Value).Append("&")).ToString();

第二种方法:

StringBuilder data = new StringBuilder();
foreach (var item in dctParameters)
{
   data.Append(string.Format("{0}={1}&",item.Key,item.Value));
}
string result = data.ToString();

第三种方法:

StringBuilder data = new StringBuilder();
foreach (var item in dctParameters)
{
     data.Append(item.Key).Append("=").Append(item.Value).Append("&");
}
string result = data.ToString();

解决方法

如何将扩展方法作为Eric建议的变体:

public static string ToQueryString(this Dictionary<string,string> dict)
{
    return '?' + string.Join("&",dict.Select(p => p.Key + '=' + p.Value).ToArray());
}

例如:

dctParameters.ToQueryString();

考虑到这种过程不太可能使服务器陷入困境,任何实现的性能成本都不值得失眠.问题是(如你所说)更好而不是更快,而你似乎追求的是一种优雅的方法,而不是最少的CPU周期.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读