foreach

weixin_42070347 2018-10-30 08:39:55
网上查资料,说foreach 不能修改迭代变量,只能访问迭代变量。自己理解也不是很深,通过几个代码进行验证,发现foreach的用法还有点特别  验证方法: 1. 迭代变量 为int int[] argint = { 12,12,12,12,12}; foreach (int item in argint) { item = 100; } 结果:编译不通过,提示item为迭代变量,无法为它赋值; 2. 迭代变量为struct public struct MyStruct { public string Name { get; set; } } MyStruct[] array = new MyStruct[] { new MyStruct { Name = "1" }, new MyStruct { Name = "2" } }; foreach (MyStruct item in array) { item.Name= “test”; } 结果:编译不通过,提示item为迭代变量,无法修改其成员; 3. 迭代变量为类 IList<Student> list = db.Students.ToList(); foreach (Student item in list) { item.address = "xxxxxx"; item.age = 100; item.id = 1000; item.name = "xxxxx"; item.sex = 1; } 结果:编译通过,运行后发现,item的属性都发生了改变。 总结:对于迭代变量为类的情况,foreach在迭代过程中,可以修改迭代变量的属性。
...全文
73 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
636f6c696e 2018-11-06
  • 打赏
  • 举报
回复
都问过了,怎么还来问一遍?还在C区问?这玩意有啥特别的?
AlbertS 2018-11-06
  • 打赏
  • 举报
回复
试试c++看看能改变吗?应该不行吧!
jdgdf566 2018-11-06
  • 打赏
  • 举报
回复
C语言没有foreach
测试NULL 2018-11-05
  • 打赏
  • 举报
回复
老哥,这个是C#的吧?

69,336

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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