(31)Know your loops

招数31:

认识你的循环

for is the fastest way of iterating over a collection, foreach is a little slower, and LINQ queries are slowest.
for是遍历集合最快的方法,foreach略慢一些,LINQ查询最慢。

测试代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Diagnostics; namespace ConsoleApplicationExample
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("code test:"); Stopwatch watch = new Stopwatch();
// for loop
watch.Start();
for (int i = ; i < ; i++) { ; }
watch.Stop();
Console.WriteLine("for loop:");
Console.WriteLine(watch.Elapsed.TotalMilliseconds); watch = new Stopwatch();
// while loop
watch.Start();
int loop = ;
while (loop < ) { loop++; }
watch.Stop();
Console.WriteLine("while loop:");
Console.WriteLine(watch.Elapsed.TotalMilliseconds); watch = new Stopwatch();
// foreach loop
watch.Start();
int[] array = new int[];
foreach (int i in array) { ; }
watch.Stop();
Console.WriteLine("foreach loop:");
Console.WriteLine(watch.Elapsed.TotalMilliseconds); watch = new Stopwatch();
// foreach loop
watch.Start();
Array.ForEach(array, (i) => { ; });
watch.Stop();
Console.WriteLine("lamda loop:");
Console.WriteLine(watch.Elapsed.TotalMilliseconds); Console.ReadLine();
}
}
}

测试结果:

code test:
for loop:
0.2467
while loop:
0.2666
foreach loop:
0.4867
lamda loop:
0.8728

最新文章

  1. MediatorPattern(中介者模式)
  2. shell字符串和数组
  3. [转]UOS 中的虚拟网络设备
  4. Unity中使用协程进行服务端数据验证手段
  5. 解决Firefox访问12306&quot;连接不受信任&quot;的问题
  6. selenim之ActionChains(一)
  7. 一文看懂 Github
  8. Django中的缓存基础知识
  9. tmux 安装
  10. elementUI tree组件获取当前选择所有选中(check)和半选中(indeterminate)的节点
  11. 【Common】NO.81.Note.1.Common.1.002-【文章摘要】
  12. 内核中的xenfs是什么?
  13. 如何配置windows定时任务
  14. sso架构图
  15. 关于MORMOT跨平台
  16. springmvc sitemesh json问题
  17. C++11之std::future和std::promise和std::std::packaged_task
  18. ATK-DataPortal 设计框架(三)
  19. 内核并发管理---spin lock
  20. 解决maven项目中有小红叉的问题

热门文章

  1. elementaryOS系统托盘解决方案
  2. ylbtech-权限管理-数据库设计-功能权限管理技术
  3. delphi7在win7系统如何安装spcomm控件
  4. 细雨学习笔记:Jmeter之post processors(后置处理器)
  5. 完全参照系统自带的DatePickerDialog、TimePickerDialog的源代码仿写的DateTimePickerDialog
  6. 动态执行linq 语句 NLinq
  7. Cloudera的安装
  8. &lt;Chapter 2&gt;2-2-2-1.介绍JSPs,JSTL,和EL(Introducing JSPs, JSTL, and EL)
  9. 树莓派使用8188eu无线网卡
  10. 现代程序设计 homework-07