求:C#中 foreach() 的用法,

说的越详细越好,根据答案的满意程度,我会提高奖励的。。最好能给一个比较全的例子,他和For循环的区别是什么,什么时候必须用这个?... 说的越详细越好,根据答案的满意程度,我会提高奖励的。。

最好能给一个比较全的例子,他和For循环的区别是什么,什么时候必须用这个?
展开
 我来答
百度网友8371ee6
2011-01-07 · TA获得超过2818个赞
知道小有建树答主
回答量:692
采纳率:0%
帮助的人:686万
展开全部
说明:
foreach 对象是集合。
集合的定义下边有。
像数组、List等都是集合。具体的去MSDN上查询。上边讲的很全面。
下列示例按照元素的顺序打印出一个二维数组中的各个元素的值:
using System;
class Test
{
static void Main() {
double[,] values = {
{1.2, 2.3, 3.4, 4.5},
{5.6, 6.7, 7.8, 8.9}
};
foreach (double elementValue in values)
Console.Write("{0} ", elementValue);
Console.WriteLine();
}
}
和for循环的区别:
for循环油条件判断,可以限制执行条件。foreach没有。对集合对象的遍历,foreach更常用。

以下是MSDN上的。查看网址:
http://msdn.microsoft.com/zh-cn/library/ms141724.aspx

foreach 语句用于枚举一个集合的元素,并对该集合中的每个元素执行一次相关的嵌入语句。

foreach-statement:(foreach 语句:)
foreach ( type identifier in expression ) embedded-statement(foreach ( 类型 标识符 in 表达式 ) 嵌入语句)
foreach 语句的类型和标识符声明该语句的迭代变量。迭代变量相当于一个其范围覆盖整个嵌入语句的只读局部变量。在 foreach 语句执行期间,迭代变量表示当前正在为其执行迭代的集合元素。如果嵌入语句试图修改迭代变量(通过赋值或 ++ 和 -- 运算符)或将迭代变量作为 ref 或 out 参数传递,则将发生编译时错误。

foreach 语句的表达式的类型必须是集合类型(下面有它的定义),且必须有一个从该集合的元素类型到迭代变量的类型的显式转换(第 6.2 节)。如果该表达式具有 null 值,则将引发 System.NullReferenceException。

如果类型 C 实现了 System.Collections.IEnumerable 接口,或者能够满足下列(有关实现集合模式的)条件,就称它是集合类型:

C 包含一个 public 实例方法,它带有签名 GetEnumerator(),且返回值属于结构类型、类类型或接口类型(后文中用 E 表示该返回值的类型)。
E 包含一个 public 实例方法,此方法具有签名 MoveNext() 和返回类型 bool。
E 包含一个名为 Current 的 public 实例属性,此属性允许读取当前值。此属性的类型称为该集合类型的元素类型。
一个实现 IEnumerable 的类型也是集合类型,即使它不满足上述条件。(这是可能的,如果该类型通过“显式接口成员实现”的方式实现某些 IEnumerable 成员,关于该方式详见第 13.4.1 节中的说明。)

System.Array 类型(第 12.1.1 节)是集合类型,而由于所有的数组类型都从 System.Array 派生,foreach 语句中允许使用任何数组类型表达式。foreach 按如下顺序遍历数组的元素:对于一维数组,按递增的索引顺序遍历元素,从索引 0 开始,到索引 Length – 1 结束。对于多维数组,按这样的方式遍历元素:首先增加最右边维度的索引,然后是它的左边紧邻的维度,依此类推直到最左边的那个维度。
Melody_Mahome
2011-01-07 · 超过22用户采纳过TA的回答
知道答主
回答量:78
采纳率:0%
帮助的人:0
展开全部
List <int > a=new List<int>();
a.add(1);
a.add(2);
foreach(int i in a)
{

}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
anxuv56
2011-01-08 · TA获得超过450个赞
知道答主
回答量:364
采纳率:100%
帮助的人:304万
展开全部
foreach循环中不允许修改集合的元素。

你换成for循环吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式