从性能的角度来看,你应该使用"嵌套的foreach"或"lambda/linq查询"?
我正在写一个7卡扑克手评估员作为我的宠物项目之一.在尝试优化速度时(我喜欢挑战),我惊讶地发现,与数组索引查找相比,Dictionary键查找的性能相当慢.
例如,我运行了这个示例代码,列举了所有52个选择7 = 133,784,560个可能的7个牌手:
var intDict = new Dictionary<int, int>();
var intList = new List<int>();
for (int i = 0; i < 100000; i ++)
{
intDict.Add(i, i);
intList.Add(i);
}
int result;
var sw = new Stopwatch();
sw.Start();
for (int card1 = 0; card1 < 46; card1++)
for (int card2 = card1 + 1; card2 < 47; card2++)
for (int card3 = card2 + 1; card3 < 48; card3++)
for (int card4 = card3 + 1; card4 < 49; card4++) …Run Code Online (Sandbox Code Playgroud)