首页 > 解决方案 > 使用 LINQ 循环通过 Dictionary、foreach 或 for-loop 哪个更有效?

问题描述

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

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

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

但是我们不能for (;;)直接使用它来迭代它,所以我们需要 LINQElementAt()或类似的东西。

所以哪个更高效,使用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()也可以创建实例?

编辑:如果有关于它的讨论并且可能有答案,请随时将其标记为重复,但让我知道参考。

标签: c#linqdictionaryfor-loopforeach

解决方案


推荐阅读