都知道Dictionary<K,T> 时间复杂度效率是0(1) List<T> 0(n)
闲来无聊写个代码测试下对比下
Dictionary<int, CardInfo> dic = new Dictionary<int, CardInfo>();
List<CardInfo> list = new List<CardInfo>();
int i = 0;
for (i = 0; i < 5000000; i++)
{
dic.Add(i, new CardInfo() { CardNo = i.ToString(), CardValue = i.ToString() });
list.Add(new CardInfo() { CardNo = i.ToString(), CardValue = i.ToString() });
}
var resultDic = new List<CardInfo>();
Random rend = new Random();
var watchH = new Stopwatch();
watchH.Start();
for (int j = 0; j < 100; j++)
{
var index = rend.Next(5000000);
resultDic.Add(dic[index]);
}
watchH.Stop();
Console.WriteLine($"resultDic:{watchH.ElapsedMilliseconds}总时长");
watchH.Restart();
var result = new List<CardInfo>();
for (int k = 0; k < 100; k++)
{
var index = rend.Next(5000000);
result.Add(list.FirstOrDefault(x => x.CardNo == index.ToString()));
}
watchH.Stop();
Console.WriteLine($"result:{watchH.ElapsedMilliseconds}总时长");
Console.Read();
吓一跳啊兄弟们。