c# - 使用 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()
也可以创建实例?
编辑:如果有关于它的讨论并且可能有答案,请随时将其标记为重复,但让我知道参考。
解决方案
推荐阅读
- python - 不是一组列表排列的随机样本
- line - 我想在两个扩展 line.new 之间“填充”。pine-script 没有它;√)
- php - Laravel如何在中间件函数内部使用变量
- excel - VBA不粘贴到表中的空行
- twig - 从孩子传递给父母,然后包括树枝
- python-3.x - gridsearch 未显示所有超参数或不断更改 best_estimator_
- php - 为什么 isset($_GET['code']) 在 php 中使用 google oauth 登录时返回 false?
- c++ - 将文件对话保持在 glfw 窗口的顶部
- python - Itertools 组合,¿如何使其更快?
- c# - 以编程方式制作文本框多行