
Foreach使用循环语句是编程的基本语句. 在C#中,除了遵循C语言的loop语句外,还提供了foreach语句来实现循环. 所以我想说的是,尝试在循环操作中使用foreach语句. 为了更好地解释为什么您应该促进使用foreach,请通过以下三种不同方式编写循环语句. int [] nArray =新的int [100]; //使用“ foreach”循环遍历数组foreach(nArray中的int)Debug.WriteLine(i.ToString()); //使用“ for”为(int i = 0; i

也许很认为最后一个会更有效,因为似乎您不需要每次都访问引用类型的属性. 但是,这是三者中效率最低的. 由于对C#进行了严格的类型检查,因此在访问数组时,必须判断索引的有效值,因此最后一个代码的实际效果与以下代码相同. //使用“ for”循环数组int的另一种方法nLength = nArray.Length; for(int i = 0; i
第一个是不考虑数组的起始索引. 很可能会从其他语言切换到C#,然后原始语言的起始索引可能不是1,例如VB或Delphi语言,然后在C#中使用数组,当您以0或1,您可以通过使用foreach避免此类问题. 第二个优点是使用foreach进行多维数组操作非常简单,例如: int [,] nVisited = new int [8,8]; //使用“ for”为(int i = 0; i
要说的第三件事是,foreach完成了类型转换操作,通过以上示例,该实施例可能看不到任何效果foreach,但是对于ArrayList和其他数据集,此操作更为突出,例如: //初始化一个arraylist object int [] nArray = new int [100]; ArrayList arrInt = new ArrayList(); arrInt.AddRange(nArray); //使用“ foreach”循环一个数组列表foreach(int in arrInt)Debug.WriteLine(i.ToString()); //使用“ for”为(int i = 0; i
关于foreach的好处很多,所以使用它无可挑剔吗?实际上,事实并非如此. 在foreach语句中有两个限制. 首先,枚举成员无法修改,其次,不要删除集合. 也就是说,以下两种方法是错误的. //使用“ foreach”循环一个数组列表foreach(int i in arrInt){i ++; //无法编译Debug.WriteLine(i.ToString());} //使用“ foreach”循环一个数组列表foreach(arrInt中的int){arrInt.Remove(i); //这会在运行时Debug.WriteLine(i.ToString());}中生成错误. 然后对于上面的两个操作,您可以使用来实现,此外我还要说一件事,它也是一个地方记录集的多个数据删除经常会出现问题的地方(在论坛上经常会问类似的问题),因为在某些记录集中删除时,删除操作之后的相应索引也有所更改,并且在此处删除时间将被反向删除. 通用形式如下.
//使用“ for”循环一个数组列表,用于(int i = arrInt.Count-1; i> = 0; i--){int n =(int)arrInt [i];如果(n == 5)arrInt.RemoveAt(i); //在此处删除数据Debug.WriteLine(n.ToString());}除了这两个地方,foreach基本上可以应用于任何循环,因此对于循环编写,请尝试使用foreach,因为它将使您的代码清晰简洁但高效. 因为这是从类集合中删除元素. 这将遍历整个集合,而foreach是遍历的新事物. 自然使用. 因此foreach,代码类似于以下内容: string temp = name.Text; //从TextBox foreach读取数据(Data.myCourse中的LCour cou)//遍历列表
但是,印象中关于foreach的注意点是它仅适用于遍历阅读,不能修改. 上面的代码已成功删除. 这样,矛盾的就种在了我的心上. foreach到底是什么?过程: 我阅读了MSDN文档,但是文档中的示例使用遍历来读取每个元素,因此不是很有帮助. 相关的测试,异常和编译错误很有用. 处理的详细信息和摘要: 1.自定义整数数组,然后遍历并修改foreach(myArray中的int myint){myint + = 8;}错误1“ myint”是“ foreach迭代变量”,无法对其进行赋值G: \ TEST \ VS..C#\ testforeach \ Program.cs 15 27 testforeach 2,自定义类,在该类中定义对私有成员进行操作的函数,然后遍历该类对象并调用函数public class MyClass //自定义测试类{private int i = 0; public void change(){i = 98;}公共重写字符串ToString(){返回i.ToString();}} MyClass [] myTest = new MyClass [10]; //测试代码片段foreach(myTest中的MyClass mc){mc.change(); Console.WriteLine(mc.ToString());}通过了编译,但是引发了一个异常NullRefferenceException,未将对象引用设置为该对象的实例.
3,就像测试开始时的示例一样,有一些细微的变化. 删除后,您无需中断List
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-203593-1.html
他们敢来我们海巡逻
北洋海军强在定远镇远的铁甲巨炮