我有一个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()
可能还会创建实例?
编辑:如果有讨论,可能有答案,请随时将其标记为重复,但请告知我参考。