Stu*_*urm 15 c# performance loops count
我想知道这是否有所不同:
for (int i = 0; i < values.Count; i++)
{
//
}
Run Code Online (Sandbox Code Playgroud)
VS
int num = values.Count;
for(int=0; i<num; i++)
{
}
Run Code Online (Sandbox Code Playgroud)
我认为第二种方法更好,因为您不需要计算每次迭代中的所有项目.但我可能错了.有人可以照亮我吗?
Bas*_*Bas 14
该列表已在Count
内部存储.您正在进行的比较与代码样式有关,而与性能无关.由于编译器将优化'Count'的检索
Pro*_*ega 12
那么你可以在这里查看.NET源代码 http://referencesource.microsoft.com/#mscorlib/system/collections/generic/list.cs#aa7e01fcb80a917e
public int Count {
get {
Contract.Ensures(Contract.Result<int>() >= 0);
return _size;
}
}
Run Code Online (Sandbox Code Playgroud)
看来列表中的.Count属性会进行快速内部检查,然后返回_size.所以它应该非常接近你自己存储值的性能.
归档时间: |
|
查看次数: |
6178 次 |
最近记录: |