33 个解决方案
#1
应该是foreach 不过有些情况还是必须用到for的 比如for{}里面需要用到下标什么的
#2
各有优缺点。
#3
两个效率一样的,可以做一个试验看看,时间差不多,foreach的实现原理就是用的for
但是对于开发人员来说,foreach代码比较少,除了某些必须要用下标的情况一般还是foreach比较方便的
但是对于开发人员来说,foreach代码比较少,除了某些必须要用下标的情况一般还是foreach比较方便的
#4
foreach,好像必须实现接口IEnumerator才可以用的吧。
#5
#6
foreach用于遍历实现IEnumerable接口的集合的元素,你可能无法知道当前元素在集合中是第几个
for就没有这个限制,各有优缺点
for就没有这个限制,各有优缺点
#7
foreach用来遍历未知数目的元素,如在一个页面的控件
#8
#9
LS误导,,,,遍历为止数目???呵呵!!!!有专门的length属性或者count属性,,,难道是未知?
string[] strNames = new string[] { "张三", "李四" };
foreach (string strName in strNames)
{
strName += "Num1";//错误
}
for (int i = 0; i < strNames.Length; i++)
{
strNames[i] += "num1";
}
从以上代码你能发现几点就算几点吧!!
提示两点:foreach遍历的时候该元素是只读的,遍历不需要其长度!!!,既然是只读,速度肯定比for快!
string[] strNames = new string[] { "张三", "李四" };
foreach (string strName in strNames)
{
strName += "Num1";//错误
}
for (int i = 0; i < strNames.Length; i++)
{
strNames[i] += "num1";
}
从以上代码你能发现几点就算几点吧!!
提示两点:foreach遍历的时候该元素是只读的,遍历不需要其长度!!!,既然是只读,速度肯定比for快!
#10
LZ
乘法口诀
乘法口诀
#11
foreach 比for 快,少个i++的时间
#12
foreach
#13
用foreach
#14
后者更快,因为会有编译优化。
忘记是那本书上讨论过,有的时候foreach比C++/C的循环结构还要快。
忘记是那本书上讨论过,有的时候foreach比C++/C的循环结构还要快。
#15
foreach是只读的
#16
foreach 用来遍厉实现IEroumable接口的集合 每次返回的就是这个集合中的一个元素 当然有的时候用for 也可以实现
for 是单纯的用来控制迭代的。你可以把foreach看成是for 的一个子集
举个例子:计算 1+2+...+100
可以用for 却不可以用foreach
for 是单纯的用来控制迭代的。你可以把foreach看成是for 的一个子集
举个例子:计算 1+2+...+100
可以用for 却不可以用foreach
#17
关注,期待权威的解答
#18
foreach快些,尤其是循环对象和datarow时,如果光是数字循环没什么区别.
i like foreach
i like foreach
#19
对于这两个的说法是众说纷纭,其实是个有利弊,只要合适的时候选择合适的就可以了,楼主可以看一下这篇文章,这篇文章重视的是foreach。
当然也有文章说for效率更高。
http://www.cnblogs.com/yzxchoice/archive/2007/12/15/995949.html
当然也有文章说for效率更高。
http://www.cnblogs.com/yzxchoice/archive/2007/12/15/995949.html
#20
#21
聆听各位高见
#22
支持6楼这个,至于效率,一般哪个合适就用哪个吧
我一般也都是使用foreach,但是需要计数时就用for
比如:
我一般也都是使用foreach,但是需要计数时就用for
比如:
foreach(DataRow dr in dtData.Rows){
.......
}
// 需要计数时
for(int i=0;i<dtData.Rows.Count;i++){
DataRow dr = dtData.Rows[i];
.......
}
#23
去看看《Effective C# 中文版 》条款11:优先采用foreach循环语句;里面很详细的说明了两者的区别;
前面也有人说了,性能的话是foreach快,但是为什么快的解释都是错误的或者说的不完整
前面也有人说了,性能的话是foreach快,但是为什么快的解释都是错误的或者说的不完整
#24
foreach的效率明显高于 for
for 是一行一行的读取,而foreach是一次性读取出来。
for 是一行一行的读取,而foreach是一次性读取出来。
#25
foreach是范性的,foreach比for快10倍
#26
使用foreach的集合必须实现IEnumerator,IEnumerator中有 moveNext方法,去找到下个对象。
效率不确定
效率不确定
#27
那也不一定 for里也不一定就有到类型转换 啊?
#28
你概括的很好. 你概括的很砖家
#29
本来就是啊。。。嘿嘿...
我还是喜欢用for
#30
for
#31
foreach 更面向对象一些 for 带有一定的逻辑性质!要是循环集合的话还是foreach好吧,其他的循环还是用for吧 个人意见!
#32
如果foreach与for都能实现的功能情况下,foreach效率高于for
#33
看你怎么用了 如果 需要对队列前后座操作那么 就用for
如果 矩阵单元素平均操作foreach 或者each
如果 矩阵单元素平均操作foreach 或者each
#1
应该是foreach 不过有些情况还是必须用到for的 比如for{}里面需要用到下标什么的
#2
各有优缺点。
#3
两个效率一样的,可以做一个试验看看,时间差不多,foreach的实现原理就是用的for
但是对于开发人员来说,foreach代码比较少,除了某些必须要用下标的情况一般还是foreach比较方便的
但是对于开发人员来说,foreach代码比较少,除了某些必须要用下标的情况一般还是foreach比较方便的
#4
foreach,好像必须实现接口IEnumerator才可以用的吧。
#5
#6
foreach用于遍历实现IEnumerable接口的集合的元素,你可能无法知道当前元素在集合中是第几个
for就没有这个限制,各有优缺点
for就没有这个限制,各有优缺点
#7
foreach用来遍历未知数目的元素,如在一个页面的控件
#8
#9
LS误导,,,,遍历为止数目???呵呵!!!!有专门的length属性或者count属性,,,难道是未知?
string[] strNames = new string[] { "张三", "李四" };
foreach (string strName in strNames)
{
strName += "Num1";//错误
}
for (int i = 0; i < strNames.Length; i++)
{
strNames[i] += "num1";
}
从以上代码你能发现几点就算几点吧!!
提示两点:foreach遍历的时候该元素是只读的,遍历不需要其长度!!!,既然是只读,速度肯定比for快!
string[] strNames = new string[] { "张三", "李四" };
foreach (string strName in strNames)
{
strName += "Num1";//错误
}
for (int i = 0; i < strNames.Length; i++)
{
strNames[i] += "num1";
}
从以上代码你能发现几点就算几点吧!!
提示两点:foreach遍历的时候该元素是只读的,遍历不需要其长度!!!,既然是只读,速度肯定比for快!
#10
LZ
乘法口诀
乘法口诀
#11
foreach 比for 快,少个i++的时间
#12
foreach
#13
用foreach
#14
后者更快,因为会有编译优化。
忘记是那本书上讨论过,有的时候foreach比C++/C的循环结构还要快。
忘记是那本书上讨论过,有的时候foreach比C++/C的循环结构还要快。
#15
foreach是只读的
#16
foreach 用来遍厉实现IEroumable接口的集合 每次返回的就是这个集合中的一个元素 当然有的时候用for 也可以实现
for 是单纯的用来控制迭代的。你可以把foreach看成是for 的一个子集
举个例子:计算 1+2+...+100
可以用for 却不可以用foreach
for 是单纯的用来控制迭代的。你可以把foreach看成是for 的一个子集
举个例子:计算 1+2+...+100
可以用for 却不可以用foreach
#17
关注,期待权威的解答
#18
foreach快些,尤其是循环对象和datarow时,如果光是数字循环没什么区别.
i like foreach
i like foreach
#19
对于这两个的说法是众说纷纭,其实是个有利弊,只要合适的时候选择合适的就可以了,楼主可以看一下这篇文章,这篇文章重视的是foreach。
当然也有文章说for效率更高。
http://www.cnblogs.com/yzxchoice/archive/2007/12/15/995949.html
当然也有文章说for效率更高。
http://www.cnblogs.com/yzxchoice/archive/2007/12/15/995949.html
#20
#21
聆听各位高见
#22
支持6楼这个,至于效率,一般哪个合适就用哪个吧
我一般也都是使用foreach,但是需要计数时就用for
比如:
我一般也都是使用foreach,但是需要计数时就用for
比如:
foreach(DataRow dr in dtData.Rows){
.......
}
// 需要计数时
for(int i=0;i<dtData.Rows.Count;i++){
DataRow dr = dtData.Rows[i];
.......
}
#23
去看看《Effective C# 中文版 》条款11:优先采用foreach循环语句;里面很详细的说明了两者的区别;
前面也有人说了,性能的话是foreach快,但是为什么快的解释都是错误的或者说的不完整
前面也有人说了,性能的话是foreach快,但是为什么快的解释都是错误的或者说的不完整
#24
foreach的效率明显高于 for
for 是一行一行的读取,而foreach是一次性读取出来。
for 是一行一行的读取,而foreach是一次性读取出来。
#25
foreach是范性的,foreach比for快10倍
#26
使用foreach的集合必须实现IEnumerator,IEnumerator中有 moveNext方法,去找到下个对象。
效率不确定
效率不确定
#27
那也不一定 for里也不一定就有到类型转换 啊?
#28
你概括的很好. 你概括的很砖家
#29
本来就是啊。。。嘿嘿...
我还是喜欢用for
#30
for
#31
foreach 更面向对象一些 for 带有一定的逻辑性质!要是循环集合的话还是foreach好吧,其他的循环还是用for吧 个人意见!
#32
如果foreach与for都能实现的功能情况下,foreach效率高于for
#33
看你怎么用了 如果 需要对队列前后座操作那么 就用for
如果 矩阵单元素平均操作foreach 或者each
如果 矩阵单元素平均操作foreach 或者each