C# dictionary 遍历性能分析
1. 遍历性能,如果想通过遍历获取Dictionary 的键值对,方法有两种
方法 一
/// <summary>
/// 通过key 访问键值对
/// </summary>
private static void keyPerformance(Dictionary<string,string> dic)
{
DateTime start = DateTime.Now;
string val = string.Empty;
string key = string.Empty;
foreach (string item in dic.Keys)
{
key = item;
val = dic[item];
}
DateTime end = DateTime.Now;
TimeSpan span = end.Subtract(start);
Console.WriteLine(" foreach keys spend time:{0}",span.TotalMilliseconds);
}
方法 二 性能最佳 推荐使用
/// <summary>
/// 通过 KeyValuePair 访问键值对(推荐使用)
/// </summary>
/// <param name="dic"></param>
private static void keyValPerformance(Dictionary<string , string> dic)
{
DateTime start = DateTime.Now;
string val = string.Empty;
string key = string.Empty;
foreach (KeyValuePair<string ,string> item in dic)
{
key = item.Key;
val = item.Value;
}
DateTime end = DateTime.Now;
TimeSpan span = end.Subtract(start);
Console.WriteLine(" foreach keyVals spend time:{0}", span.TotalMilliseconds);
}
以下是耗时对比
耗时: keys集合遍历 > keyvaluePair遍历
2. 其它遍历
如果获取 dictionary 中的key 推荐 方法一
耗时: keyvalPair 遍历 >keys 集合遍历
如果获取 dictionary 中的value 推荐如下方法
private static void valPerformance(Dictionary<string , string> dic)
{
DateTime start = DateTime.Now;
string val = "";
foreach (string item in dic.Values)
{
val = item.value;
}
DateTime end = DateTime.Now;
TimeSpan span = end.Subtract(start);
Console.WriteLine(" foreach vals spend time:{0}", span.TotalMilliseconds);
}
耗时: keyValPair 遍历 > values 集合遍历
C# dictionary 遍历性能分析相关推荐
- JAVA→HashMap、常用方法、遍历方式、底层原理、初始化性能分析
Map方法 HashMap HashMap()遍历 HashMap()四种遍历性能分析 HashMap()底层原理 HashMap()是否初始化大小性能分析 LinkedHashMap()
- vim 高级应用 原文地址 http://www.2maomao.com/blog/wp-content/uploads/vim_tips.txt
最佳vim技巧 ---------------------------------------- # 信息来源 ---------------------------------------- www ...
- Python 字典(Dictionary) get()方法
Python 字典(Dictionary) get()方法 描述 Python 字典(Dictionary) get() 函数返回指定键的值,如果值不在字典中返回默认值. 语法 get()方法语法: ...
- Android 应用进行性能分析/APP/系统性能分析
如何对 Android 应用进行性能分析 记录一下自己在使用DDMS的过程:开启AS,打开并运行项目 找到TOOL/选择Android Device Monitor 一款 App 流畅与否安装在自己 ...
- Python 字典(Dictionary)
Python 字典(Dictionary) 字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在 ...
- Dictionary作为数据源绑定,调用c++库中返回为BYTE*的函数,listView项排序
最近在做一个电子档案管理的项目.现在还处于初期,只是做一个简单demo拿去跟客户演示.至于最后谈不谈得下来,到底做不做,反正我是不看好,但没因为这样就马马虎虎.草草了事.这个项目算是b/s加c/s混合 ...
- 技术图文:浅析 C# Dictionary实现原理
背景 对于 C# 中的 Dictionary类 相信大家都不陌生,这是一个 Collection(集合) 类型,可以通过 Key/Value (键值对) 的形式来存放数据:该类最大的优点就是它查找元素 ...
- python报错 ValueError: dictionary update sequence element #0 has length 1; 2 is require
原文链接地址: https://blog.csdn.net/weixin_40894428/article/details/80683137 字符串转字典要用eval(),这个方法很多书上都没有介绍, ...
- 迭代var()内置函数的时候出现RuntimeError: dictionary changed size during iteration的解决办法...
下午看了Mr Seven的教学视频,其中有一段讲全局变量的视频,迭代输出全局变量的时候报错了. 视频中的做法: for k,v in vars().items():print(k) 打印结果 for ...
最新文章
- Sobel算子及cvSobel
- Qt 信号量 QSemaphore Class 的翻译
- sequelize连接mysql_node.js通过Sequelize 连接MySQL
- 第二十九期:全球首部AI交响变奏曲问世,AI技术应用再拓边界
- ES6~ES12——Array Includes、Object values、Object entries、Object fromEntries、flat、flatMap、空值合并运算符、可选链等
- 人脸检测与对齐之MTCNN网络
- Java面试之锁-自旋锁
- 关于COM的Reg-Free(免注册)技术简介及实例讲解。
- python中ta_非常详细的Ta-Lib安装及使用教程
- Oracle 11gR2 sessions=1.5*processes+22
- android自定义软键盘
- Oracle停止数据泵,如何停止重启数据泵任务
- react 表单设计器_神器:让你相见恨晚的5个React应用程序库
- 「PMP答题卡」真实模拟PMP考试
- ​依图上市,AI 四小龙走向「三岔路口」
- MFC自制小游戏——躲避球(每日进度)
- centos7.4运行hyperLedger fabric 1.3.0 first network
- Hadoop集群搭建(三)
- 华中科技大学2017年数学分析高等代数考研试题
- 一些牛人榜样,多看看他们写的东西
热门文章
- IP 获取和 IP定位
- 区块链技术用于商品溯源
- python put指令是什么意思_request.put()但它请求使用PUT在我的Python上使用GET
- xmpp 中文 XEP-0084: 用户头像
- 微信如何备份全部的聊天记录到电脑
- JAVA毕业设计家电售后管理系统计算机源码+lw文档+系统+调试部署+数据库
- 无人机倾斜摄影技术在测绘领域的应用
- DanceNN:字节自研千亿级规模文件元数据存储系统概述
- 计算机科学与技术学科交叉,计算机科学与技术学科方法论.ppt
- 大二JavaWeb课程设计——图书管理系统(可以很好的应付老师的作业)