C# for和foreach两种循环的效率问题

简介: C# for和foreach两种循环的效率问题

所谓的效率就是哪个运行的比较快,

用来循环数组类的一般使用for或者foreath

下面通过代码测试他们的效率:


创建一个int类型数组使用3种循环查看效率:

for

int[] a = new int[1000000000];
 Stopwatch b = new Stopwatch();
  b.Start();
for (int i = 0; i <= a.Length; i++) 
 {                    
 }
b.Stop();                  
Console.WriteLine(b.Elapsed);

foreach:

int[] a = new int[1000000000];
 Stopwatch b = new Stopwatch();
b.Start();
foreach (int i in a)
{ 
 }
 b.Stop();                  
Console.WriteLine(b.Elapsed);

while:

基本不会使用这种方法…

int[] a = new int[1000000000];
Stopwatch b = new Stopwatch();
  b.Start();
 int i =0;
 while (i <= a.Length)
  {
    i++;
   }
b.Stop();                  
 Console.WriteLine(b.Elapsed);

总结:

还测试了其他的…

测试了五六次for和while的速度确实比foreath快一点,

不过处理小数据用哪种都差不多速度都不会太远,

纯手打,点个赞呗~

相关文章
|
编译器 数据处理 C#
C#中的异步流:使用IAsyncEnumerable<T>和await foreach实现异步数据迭代
【1月更文挑战第10天】本文介绍了C#中异步流的概念,并通过使用IAsyncEnumerable<T>接口和await foreach语句,详细阐述了如何异步地迭代数据流。异步流为处理大量数据或需要流式处理数据的场景提供了一种高效且非阻塞性的方法,使得开发者能够更优雅地处理并发和数据流问题。
|
11月前
|
安全 编译器 程序员
C# 中 foreach 循环和 for 循环深度比较
为什么建议你多数情况下使用 foreach 进行遍历循环?看完你就明白了
290 5
|
8月前
|
缓存 图形学
Unity C#for和foreach效率比较
该代码对比了三种遍历 `List&lt;int&gt;` 的方式的性能:使用缓存 `Count` 的 `for` 循环、每次访问 `list.Count` 的 `for` 循环以及 `foreach` 循环。通过 `Stopwatch` 测量每次遍历 300 万个元素所花费的时间,并输出结果。测试可在 Unity 环境中运行,按下空格键触发。结果显示,缓存 `Count` 的 `for` 循环性能最优,`foreach` 次之,而每次都访问 `list.Count` 的 `for` 循环最慢。
|
12月前
|
Java C#
如何避免在C#循环中使用await
如何避免在C#循环中使用await
297 9
|
开发框架 .NET 程序员
掌握C#语言的精髓:基础知识与实用技能详解(数据类型与变量+ 条件与循环+函数与模块+LINQ+异常+OOP)
掌握C#语言的精髓:基础知识与实用技能详解(数据类型与变量+ 条件与循环+函数与模块+LINQ+异常+OOP)
85 0
C# 循环与条件语句详解
使用 switch 语句选择要执行的多个代码块中的一个。 示例:
152 2
C#基础语法(判断和循环)
C#基础语法(判断和循环)
128 1
|
C# 图形学
【Unity 3D】C#中while do while for foreach等循环语句的讲解(附测试代码)
【Unity 3D】C#中while do while for foreach等循环语句的讲解(附测试代码)
401 0
【C#视频】for、while、do-while三种循环
【C#视频】for、while、do-while三种循环
|
11月前
|
C# 开发者
C# 一分钟浅谈:Code Contracts 与契约编程
【10月更文挑战第26天】本文介绍了 C# 中的 Code Contracts,这是一个强大的工具,用于通过契约编程增强代码的健壮性和可维护性。文章从基本概念入手,详细讲解了前置条件、后置条件和对象不变量的使用方法,并通过具体代码示例进行了说明。同时,文章还探讨了常见的问题和易错点,如忘记启用静态检查、过度依赖契约和性能影响,并提供了相应的解决建议。希望读者能通过本文更好地理解和应用 Code Contracts。
203 3