使用LINQ遍历字典,foreach或for循环,哪种方法更有效?

时间:2019-01-31 09:56:48

标签: c# linq dictionary for-loop foreach

我有一个Dictionary<String, Object>,里面有一些数据。

我想遍历每个元素,我知道我可以使用foreach。 但是我有点担心它的性能和内存使用情况。

这是事实,我们知道for (;;)foreach ()更快并且使用更少的RAM(如果我没记错的话),因为它不会为每个元素创建新实例。

但是我们不能直接使用for (;;)对其进行迭代,因此我们需要LINQ的ElementAt()或类似的东西。

因此,效率更高的是使用foreach ()效率更高

private Dictionary <String, Object> items;
foreach (var entry in items)
{
  // do something with entry
}

或结合使用for (;;)和LINQ更加有效

private Dictionary <String, Object> items;
for (var c = 0; c < items.Count; c++)
{
  // do something with items.ElementAt(c)
}

for (;;)与LINQ组合与foreach ()相同,因为items.ElementAt()可能还会创建实例?

编辑:如果有讨论,可能有答案,请随时将其标记为重复,但请告知我参考。

0 个答案:

没有答案