我有一个可能的实现场景,我需要一个包含 3 个变量的字典对象。方言、查询名称和查询字符串。在此阶段我应该注意,编写单独的类对象不是一种选择。
我的问题是以下哪一项表现更好。
A) 将前两个变量作为复合键的单个字典对象,例如"dialect,queryname"和第三个变量作为值。
private Dictionary<string, string>
B) 一个以另一个字典对象作为值的字典对象,因此第一个变量将是主字典对象的键,第二个变量将是第二个字典对象的键,最后第三个变量将是第二个字典对象的值。
private Dictionary<string, Dictionary<string, string>>
看起来很明显,但编译器是一个神秘的东西,所以我想我应该问问你们。
谢谢
最佳答案
自娱自乐..
Dictionary<string, string> md1 = new Dictionary<string,string>();
Dictionary<string, Dictionary<string, string>> md2 = new Dictionary<string, Dictionary<string, string>>();
Stopwatch st = new Stopwatch();
st.Start();
for (int i = 0; i < 2000000; i++)
{
md1.Add(i.ToString(), "blabla");
}
st.Stop();
Console.WriteLine(st.ElapsedMilliseconds);
st.Reset();
st.Start();
for (int i = 0; i < 2000000; i++)
{
md2.Add(i.ToString(), new Dictionary<string, string>());
}
st.Stop();
Console.WriteLine(st.ElapsedMilliseconds);
Console.ReadLine();
输出:
831
1399
关于c# - 字典对象性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8502011/