对于循环进入LINQ ......可能吗?

Lea*_*ner 1 .net c# linq

我有以下代码根据类型计算卡的外观:

// counters initialization
var counters = new Dictionary<int, int>();
for (int i = 2; i <= 14; i++)
  counters.Add(i, 0);

// loop through and count number of appearances
for (int i = 0; i < playerCards.Length; i++)
  counters[playerCards[i]]++;

// Eg output: 
// playerCards = { 9, 9, 3, 3, 10 }
// counters = ( (2, 0) , (3, 2) , (4, 0) , (5, 0) , (6, 0) , (7, 0) , 
//              (8, 0) , (9, 2) , (10, 1), (11, 0), (12, 0), (13, 0), (14, 0) )
Run Code Online (Sandbox Code Playgroud)

LINQ有解决方案吗?

car*_*ett 5

快点?不会.除非您可以从并行化或延迟评估中受益,否则LINQ很少会使您的代码更快.

通常,主要的好处是您的代码更容易阅读(主观,也许).但在这种情况下,我认为您的代码尽可能清晰.将其转换为LINQ不会使其更快,也不会更具可读性.

  • @Cristi:我明白了.好吧,我想说在你的情况下,代码以你编写的形式读写更快,而不是LINQ.当我读到@Lee给出的代码时(没有冒犯意味着),我需要比你简单的for循环更多地去理解(虽然`foreach`可能更具可读性). (2认同)