读书人

这循环如何做

发布时间: 2012-10-16 09:57:37 作者: rapoo

这循环怎么做?
foreach(var c in list)
{
if()
{
判断执行
...
}
}



上面那个循环,一旦遇到if为true,那么,后面的foreach都不用判断了,直接执行if里面的语句,该怎么做?因为,如果元素很多的话,既然,都不用判断了,又为何要因为判断而影响效率。

[解决办法]
http://cn.bing.com/search?q=.net+foreach+break&src=IE-TopResult&FORM=IE10TR
[解决办法]
break掉?

每次循环被打断会影响效能
[解决办法]
呵呵,多做一个判断所消耗的额外时间,小到你绝对无法测量出来,所以这个问题没必要解决,
[解决办法]
比如如下代码

C# code
List<int> list = new List<int>() { 1, 3, 10, 6, 4, 2, 15, 1, 10, 8, 9, 20, 4, 11, 3 };foreach (int i in list){    if (i > 10)    {        Console.WriteLine("{0} larger than 10! Loops are breaked.", i);        break;    }    else    {        Console.WriteLine(i);    }}
[解决办法]
同问啊

C#怎么在执行完一句判断语句后,在循环内将其移除?
[解决办法]
有一种思路,可以改用for来实现:
C# code
        List<int> list = new List<int>() { 1, 2, 3, 4, 5 };        for (int i = 0; i < list.Count; i++)        {            if (list[i] == 3)            {                for (; i < list.Count; i++)                    Console.WriteLine(list[i]);                break;            }        }
[解决办法]
改成“大于等于3”比较恰当点:
C# code
        List<int> list = new List<int>() { 1, 2, 3, 4, 5 };        for (int i = 0; i < list.Count; i++)        {            if (list[i] >= 3)            {                for (; i < list.Count; i++)                    Console.WriteLine(list[i]);                break;            }        } 

读书人网 >C#

热点推荐