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 集合遍历