foreach和for循环区别

人气:492 ℃/2023-02-10 05:05:32

在我们日常生活中偶尔会遇到一些自己不知道如何解决的问题,比如foreach和for循环区别。那么我们应该怎样解决这种自己不知道foreach和for循环区别的情况呢?那么接下来就由我来介绍一下foreach和for循环区别吧。

区别一:

如果只是遍历集合或者数组,用foreach好些,快些。

别二:

如果对集合中的值进行修改,就要用for循环了。其实foreach的内部原理其实也是Iterator,但它不能像Iterator一样可以人为的控制,而且也不能调用iterator.remove();更不能使用下标来访问每个元素,所以不能用于增加,删除等复杂的操作。

看了我的方法,现在你学会分清foreach和for循环区别了吗?学会了的话就快快把这个方法分享出去,让更多的人知道foreach和for循环区别。以上就是foreach和for循环区别。

foreach和for循环区别 C#

深入理解C#:15个实用C#编程技巧总结

C#是一种安全的、稳定的、简单的、优雅的,由C和C 衍生出来的面向对象的编程语言。它在继承C和C 强大功能的同时去掉了一些它们的复杂特性(例如没有宏以及不允许多重继承)。

同时。C#综合了VB简单的可视化操作和C 的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET开发的首选语言。

本文整理了C#开发和使用过程中的15个小技巧,希望能对大家的实际开发带来真正的方便。

1、使用StringBuilder代替使用string 连接符 " "

说明:String类对象是不可变的(只读),一旦创建该对象,就不能修改该对象的值。

对象String对象的重新赋值,本质上是重新创建了一个String对象并将新的值赋值给该对象。如果字符串存在较多次的拼接时候,最后使用StringBuilder类,需要引用命名空间 System.Text。

该类不是创建新的对象,而是通过Append、Insert、Remove等方法对字符串直接进行操作,最后通过ToString方法返回操作结果。从而避免创建大量对象,造成资源浪费、性能降低。

不要这样写:

推荐这样写:

2、用foreach 代替 for 循环

如果是可以使用foreach的时候,尽量用foreach,而不是 for。前者的效率比后者要高很多。

3、使用HashTable 代替其他字典集合类型(如 StringDictionary、NameValueCollection),存放少量数据的时候可以使用HashTable。

4、避免使用ArrayList

因为ArrayList使用的时候存在装箱、拆箱会造成性能的损失,可以用泛型来代替。

5、如果是字符进行比较的时候可以采用String.Compare,它会忽略大小写进行比较,而不要使用UpperCase、Lowercase转换后进行比较。

6、如果只是从xml对象中读取数据,可以用只读的XPathDocument代替XMLDocument,可以提高性能。

7、C#捕获异常的时候,不要使用通用的System.Exception。可以根据程序逻辑考虑可能出现的异常进行控制。

8、要避免在循环体内声明变量,如果可以的化,最好放在循环体外声明,在循环体内初始化。

9、采用using和try/finaly来做资源清理。

10、不要使用异常(Exception)来控制程序的流程。因为捕获异常对性能的损耗很大,最好不要用异常去控制程序的流程。

11、使用值类型的ToString方法避免装箱操作。

因为值类型到引用类型会造成性能的损耗,所以使用值类型的ToString方法可以避免装箱造成的性能损耗。

12、避免滥用反射,反射也是比较浪费性能的操作

当使用反射来调用类型或者触发方法,或者访问一个字段或者属性是,CLR需要做很多工作:校验参数、检查权限……所以非常耗时,因此这样的情况下要尽量避免反射的使用。

13.使用using语句进行别名,这个方法适合针对结构体。

因为很多时候编程上需要做Win32平台相关的一些工作,比如我要读取一个Unicode字符,但C#并没有双字Word类型,如果我们要支持双字,那么就需要自己定义类或者结构体,但实际上在C 里面,双字实际上是unsigned short,也就是说我们可以用UInt 16来实现对Word关键字的支持,但这里有一个小小的纠结,那就是我知道Word是Unsigned Int16,但是能不能定义成Word呢?这样方便我们记忆啊。

但是有的,这时候我们只需要使用using语句就可以了。做法是这样子的:

这样就可以使用Word关键字声明变量了。

14.定义值类型时,它的大小不要超过16字节,否则影响性能(频繁复制时),要么改为使用引用类型,要么让它按ref引用传递。

15.字符串操作

●字符串字面量、字符串常量,直接用" "相连效率高,因为:string str = "srf" "ttt" "ccc";会直接编译成string str = "srftttccc";,同样适用于字符串常量。

●尽量避免对变量的装箱:字符串 变量,较好的做法是:字符串 变量.ToString()

●频繁操作字符串时用StringBuilder,并制定足够大的容量,而string.Format("{0}{1}{2}",str1,str2,str3);内部也是用StringBuilder。

C#的开发是一个长期的工作,从基础开始,把握好一些技巧的应用,相信通过你的努力,一定能开发出有创意的C#程序。

推荐

首页/电脑版/网名
© 2025 NiBaKu.Com All Rights Reserved.