看一下这两块代码,那一块执行较快?

不懂必须要问 2009-07-03 07:44:22
例如NameList中有上万个记录。


List<string> NameList = new List<string>();

/*块1*/
for (int i = 0; i < NameList.Count; i++)
{
}

/*块2*/
int nCount;
nCount = NameList.Count;
for (int j = 0; j < nCount; j++)
{
}

...全文
14 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
feifeiyaqi3 2009-07-03
  • 打赏
  • 举报
回复
int nCount;
nCount = NameList.Count;
for (int j = 0; j < nCount; j++)
{
}
每次都要计算的
jinder 2009-07-03
  • 打赏
  • 举报
回复
直接
foreach (string str in NameList )
{

}
xxyping 2009-07-03
  • 打赏
  • 举报
回复
Up 塊2
OnlyAlone 2009-07-03
  • 打赏
  • 举报
回复
我猜是一样的,因为最后编译器会做优化。学过编译原理就知道,在某个重复代码块中一直不变的赋值、运算等操作,会被外提。
宝_爸 2009-07-03
  • 打赏
  • 举报
回复
NameList.Count是每次都重新计算吗.我感觉不应该.
oec2003 2009-07-03
  • 打赏
  • 举报
回复
后面的
  • 打赏
  • 举报
回复
显然是后者啊,每次都要求一次Count那必然不可取啊(不过要是nCoutnt=1之类的话就没有什么意思了)

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧