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周期. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 如何在MVC WebGrid中显示行号
- asp.net – 将经典的asp页面映射到IIS中的.net
- asp.net-mvc – 在asp.net mvc中实现stackoverflow样式徽章
- asp.net – 使用TextBox的AutoPostback失去焦点
- asp.net-mvc – 认证之前调用的ASP.NET MVC控制器构造函数
- asp.net-mvc-3 – 实体框架与ADO.NET
- asp.net-mvc – 在将站点托管到IIS之后,AngularJS路由无法正
- 解决asp net 以及MVC中上传文件大小限制的问题
- asp.net-mvc – 会话超时处理的会话开始和操作过滤器
- ASP.NET Core 2.0 Web API响应缓存