255条数据

      static void Main()
{
List<IPEndPoint> list = new List<IPEndPoint>();
for (int i =0;i<=255;i++)
{
int j = 34 + i / 255;
string ip = "188.10." + j + "." + i % 255;
int port = 26666;
IPAddress addr = IPAddress.Parse(ip);
IPEndPoint host = new IPEndPoint(addr, port);
list.Add(host);
} System.Diagnostics.Stopwatch stop = new System.Diagnostics.Stopwatch();
stop.Start();
List<IPAddress> ips = new List<IPAddress>();
foreach (var item in list)
{
if (item.Address.ToString()=="188.10.34.140")
{
ips.Add(item.Address);
}
}
stop.Stop();
double mili = stop.Elapsed.TotalMilliseconds;
Console.WriteLine("loop:\t\t"+mili);
Console.WriteLine("loopCount:\t"+ips.Count); System.Diagnostics.Stopwatch watch = new System.Diagnostics.Stopwatch();
watch.Start();
List<IPAddress> lists = list.Where(e => e.Address.ToString() == "188.10.34.140").Select(e => e.Address).ToList<IPAddress>();
watch.Stop();
double milis = watch.Elapsed.TotalMilliseconds;
Console.WriteLine("lambda:\t\t"+milis);
Console.WriteLine("lambdaCount:\t"+lists.Count);
}

结果

loop:		0.0951
loopCount: 1
lambda: 0.5711
lambdaCount: 1

2550条

···

static void Main()

{

List list = new List();

for (int i =0;i<=2550;i++)

{

int j = 34 + i / 255;

string ip = "188.10." + j + "." + i % 255;

int port = 26666;

IPAddress addr = IPAddress.Parse(ip);

IPEndPoint host = new IPEndPoint(addr, port);

list.Add(host);

}

        System.Diagnostics.Stopwatch stop = new System.Diagnostics.Stopwatch();
stop.Start();
List<IPAddress> ips = new List<IPAddress>();
foreach (var item in list)
{
if (item.Address.ToString()=="188.10.34.140")
{
ips.Add(item.Address);
}
}
stop.Stop();
double mili = stop.Elapsed.TotalMilliseconds;
Console.WriteLine("loop:\t\t"+mili);
Console.WriteLine("loopCount:\t"+ips.Count); System.Diagnostics.Stopwatch watch = new System.Diagnostics.Stopwatch();
watch.Start();
List<IPAddress> lists = list.Where(e => e.Address.ToString() == "188.10.34.140").Select(e => e.Address).ToList<IPAddress>();
watch.Stop();
double milis = watch.Elapsed.TotalMilliseconds;
Console.WriteLine("lambda:\t\t"+milis);
Console.WriteLine("lambdaCount:\t"+lists.Count);
}

···

结果

loop:		0.4618
loopCount: 1
lambda: 0.6283
lambdaCount: 1

25500条

      static void Main()
{
List<IPEndPoint> list = new List<IPEndPoint>();
for (int i =0;i<=25500;i++)
{
int j = 34 + i / 255;
string ip = "188.10." + j + "." + i % 255;
int port = 26666;
IPAddress addr = IPAddress.Parse(ip);
IPEndPoint host = new IPEndPoint(addr, port);
list.Add(host);
} System.Diagnostics.Stopwatch stop = new System.Diagnostics.Stopwatch();
stop.Start();
List<IPAddress> ips = new List<IPAddress>();
foreach (var item in list)
{
if (item.Address.ToString()=="188.10.34.140")
{
ips.Add(item.Address);
}
}
stop.Stop();
double mili = stop.Elapsed.TotalMilliseconds;
Console.WriteLine("loop:\t\t"+mili);
Console.WriteLine("loopCount:\t"+ips.Count); System.Diagnostics.Stopwatch watch = new System.Diagnostics.Stopwatch();
watch.Start();
List<IPAddress> lists = list.Where(e => e.Address.ToString() == "188.10.34.140").Select(e => e.Address).ToList<IPAddress>();
watch.Stop();
double milis = watch.Elapsed.TotalMilliseconds;
Console.WriteLine("lambda:\t\t"+milis);
Console.WriteLine("lambdaCount:\t"+lists.Count);
}

结果

loop:		5.0348
loopCount: 1
lambda: 1.5531
lambdaCount: 1

猜想

Linq好像转化为stream再做处理,所以数据量少的时候比较占用时间,但是好省代码量。我也不懂Linq,只会用

C# Lambda || Linq 效率问题的更多相关文章

  1. 分享一个递归无限级拼接Json的方法---ExtJs的TreePanel和TreeGrid均适用(Ef,Lambda,Linq,IQueryable,List)

    话不多说,先上实体类,如果你不是codefirst,就把它当成数据表结构. 下面是底层BaseDal获取数据的方法  (如果你没有Base类,直接写在你的DAL层和BLL层) 下面是BaseServi ...

  2. [MVC4]ASP.NET MVC4+EF5(Lambda/Linq)读取数据

    继续上一节初始ASP.NET MVC4,继续深入学习,感受了一下微软的MVC4+EF5(EntityFramework5)框架的强大,能够高效的开发出网站应用开发系统,下面就看一下如何用MVC4+EF ...

  3. Lambda表达式效率问题

    原文 http://www.importnew.com/17262.html 有许许多多关于 Java 8 中流效率的讨论,但根据 Alex Zhitnitsky 的测试结果显示:坚持使用传统的 Ja ...

  4. [转][MVC4]ASP.NET MVC4+EF5(Lambda/Linq)读取数据

    本文转自:https://blog.csdn.net/dingxiaowei2013/article/details/29405687 继续上一节初始ASP.NET MVC4,继续深入学习,感受了一下 ...

  5. 几种查询方法(lambda Linq Enumerable静态类方式)

    1.需要一个数据源类: using System; using System.Collections.Generic; namespace Linq { public class Student { ...

  6. C# Lambda && Linq

    Lambda表达式在C#3.0加入,它是一个匿名函数,可用于创建委托或者表达式树类型,运算符为=>,读作"goes to",=>左侧是变量,右侧是表达式,变量类型可以自 ...

  7. 有关 Lambda && linq练习 有待整理

    1. 查询Student表中的所有记录的Sname.Ssex和Class列.(select sname,ssex,class from student) Students.Select(s=> ...

  8. for/foreach/linq效率测试

    ; Random r = new Random(); List<byte> list = new List<byte>(); Console.WriteLine("开 ...

  9. ASP.NET MVC4+EF5(Lambda/Linq)读取数据

    希望大家记住,这里讲的所有的知识点,不仅仅是了解了就可以了,还要会灵活用,一定要多思考,撑握其中的编程思想. 本文讲的是委托和事件,这两个词可能你早就耳熟能详,但你是否真正撑握了呢? 本系列讲的C#高 ...

  10. Lambda&Linq

    var list = new List<Model> { , UserName = ", Email = "zhang3@yoy.com"}, , UserN ...

随机推荐

  1. MAC清理

    今日分享 Mac清理 有很多三方软件可以清理,以前用过腾讯的柠檬lite,每次就清个几百兆,系统数据感觉还是得自己手动清理才行 今天电脑又在提醒储存空间不足了,一看占用发现系统数据占了100多个G,学 ...

  2. 技术实践|数据迁移中GBK转UTF8字符集问题分析

    导语:在国产化创新的大背景下,数据库迁移项目逐渐增多,在数据库迁移过程中,源数据库和目标数据库字符集有时会不同,这时如何进行字符集转换则成为了一个重要的问题,同时在转换过程中还需要确保数据的完整性和一 ...

  3. 关于 K8s 的一些基础概念整理-补充【k8s系列之五】

    〇.前言 本文继续整理下 K8s 的一些基础概念,作为前一篇概念汇总的补充. 前一篇博文链接:https://www.cnblogs.com/hnzhengfy/p/k8s_concept.html. ...

  4. Qt音视频开发24-ffmpeg音视频同步

    一.前言 用ffmpeg来做音视频同步,个人认为这个是ffmpeg基础处理中最难的一个,无数人就卡在这里,怎么也不准,本人也是尝试过网上各种demo,基本上都是渣渣,要么仅仅支持极其少量的视频文件比如 ...

  5. Python 潮流周刊#83:uv 的使用技巧(摘要)

    本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章.教程.开源项目.软件工具.播客和视频.热门话题等内容.愿景:帮助所有读者精进 Python 技术,并增长职 ...

  6. lottie-web动画库在HTML5页面中和在vue项目中的两种使用方式

    本文主要介绍lottie-web动画库在HTML5页面中和在vue项目中的两种使用方式. 1.在HTML5页面中的使用方式 具体使用步骤详见下面的代码: <!DOCTYPE html> & ...

  7. 《深入理解Mybatis原理》MyBatis的sqlSession执行流程

    sqlSessionFactory 与 SqlSession 正如其名,Sqlsession对应着一次数据库会话.由于数据库会话不是永久的,因此Sqlsession的生命周期也不应该是永久的,相反,在 ...

  8. Solution Set -「Public NOIP Round #3 (Div. 1)」

    \(\mathscr{A}\sim\) 移除石子   Tags:「A.构造」「C.细节」   "显然" 直接按 \((x,y)\) 二元组排序后两两组成正方形! 喜提 \(90\t ...

  9. 「规则类怪谈」塔 - (preview)

      前段时间,大概五六月份,我很喜欢规则类怪谈.颓废的时候读了一大堆质量参差不齐的作品,试着编了一个世界观然后开写.咕着咕着磨到现在,至少情节大概成形了.最大的阻力在于物理规则的完备性和自洽性,为什么 ...

  10. Pod的优雅上下线

    Pod的优雅上下线依赖k8s的监控检查机制,以及 Pod lifecycle Hooks,通过这些kubernetes的机制,配合服务发现的流量管理机制,实现业务的优雅上下线. 基础概念 Pod 健康 ...