-7

简单的问题:什么是最好的,方法 1 还是方法 2?

方法 2 更快/更好:

List<int> data = Enumerable.Range(0, 10000000).ToList();
int j = 0;

// Method 1
while (j < data.Count)
{
    // do something
    j++;
}

j = 0;

// Method 2   
while (j++ < data.Count)
{
    // do something
}

还是一个简单的for循环会更好?

更新: 根据评论,一个子问题:应该避免使用while循环还是应该避免使用for循环并用这些while循环替换?

4

3 回答 3

2

我都不建议,而是建议这样做

List<int> data = Enumerable.Range(0, 10000000).ToList();
int j = -1;



// Method 1   

while (++j < data.Count)
{
    // do something
}

int j = 0;
do
    {
        //anything
    } while (++j<data.count);

pre-increment 操作比 post 快,虽然性能优势很小

于 2012-05-14T09:47:59.743 回答
1

没有区别(至少在性能方面很重要,你应该测量真正繁重的计算)

我会选择第一个,因为它对来说似乎更清楚。

于 2012-05-14T09:17:46.737 回答
-1

两者都需要相同的执行时间,没有区别。你可以在你的项目中使用任何一个。

于 2012-05-14T09:19:55.647 回答