是否用过IList的扩展方法 Foreach,而郁闷IEnumerable没有这个扩展?(没用过??用用吧,真的很方便,可以少好几行呢!!)

是否为了有一个索引而不得不用 for 而不能用 foreach??

那这个扩展方法适合你:

public static void ForEachRead<T>(this IEnumerable<T> dx,Action<int,T> act)
{
int i = ;
foreach (var item in dx)
{
act(i, item);
i++;
}
}

完了??对,完了。

这么个玩意有啥用呢??

对于要使用索引的操作以前只能:

List<int> arr = new List<int>() { ,,,,,,,,,};
var query=arr.Where(x => x > ).ToList();
for (int i = ; i < query.Count; i++)
{
Console.WriteLine(string.Format("{0}:{1}",i,query[i]));
}
Console.ReadKey();

现在可以:

List<int> arr = new List<int>() { ,,,,,,,,,};
arr.Where(x => x > ).ForEachRead((i, o) => {Console.WriteLine(string.Format("{0}:{1}", i, o));});
Console.ReadKey();

是不是很像jquery!!!

很简单的东西,看别人没发过,过来抛砖引玉吧。

本文来自 博-客-园

小扩展大用处,自己扩展一个ForeachRead吧的更多相关文章

  1. 干货分享:小技巧大用处之Bean管理类工厂多种实现方式

    前言:最近几个月很忙,都没有时间写文章了,今天周末刚好忙完下班相对早点(20:00下班)就在家把之前想总结的知识点写出来,于是就有了这篇文章.虽无很高深的技术,但小技巧有大用处. 有时我们经常需要将实 ...

  2. 【redis 学习系列08】Redis小功能大用处02 Pipeline、事务与Lua

    3.Pipeline 3.1 Pipeline概念 Redis客户端执行一条命令分为如下四个过程: (1)发送命令 (2)命令排队 (3)命令执行 (4)返回结果 其中(1)和(4)称为Round T ...

  3. 【redis 学习系列07】Redis小功能大用处01 慢查询分析以及Redis Shell

    Redis提供了5种数据结构已经足够强大,但除此之外,Redis还提供了诸如慢查询分析.功能强大的Redis Shell.Pipeline.事务与Lua脚本.Bitmaps.HyperLogLog.发 ...

  4. Redis 发布订阅,小功能大用处,真没那么废材!

    今天小黑哥来跟大家介绍一下 Redis 发布/订阅功能. 也许有的小伙伴对这个功能比较陌生,不太清楚这个功能是干什么的,没关系小黑哥先来举个例子. 假设我们有这么一个业务场景,在网站下单支付以后,需要 ...

  5. redis小功能大用处-bitmaps

  6. c++小学期大作业攻略(一)环境配置

    UPDATE at 2019/07/20 20:21 更新了Qt连接mysql的方法,但是是自己仿照连VS的方法摸索出来的,简单测试了一下能work但是不保证后期不会出问题.如果你在尝试过程中出现了任 ...

  7. [小细节,大BUG]记录一些小问题引起的大BUG(长期更新....)

    [小细节,大BUG] 6.问题描述:当从Plist文件加载数据,放入到tableView中展示时,有时有数据,有时又没有数据.这是为什么呢?相信很多大牛都想到了:我们一般将加载的数据,转换成模型,放入 ...

  8. 10.我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。 请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?

    我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形. 请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 是不是发现看不懂,哈哈:编程题就是这样,一定要归纳,手写过程: n ...

  9. 扩展银行项目,添加一个(客户类)Customer类。Customer类将包含一个Account对象。

    练习目标-使用引用类型的成员变量:在本练习中,将扩展银行项目,添加一个(客户类)Customer类.Customer类将包含一个Account对象. 任务 在banking包下的创建Customer类 ...

随机推荐

  1. 动画--过渡延迟时间 transition-delay

    transition-delay属性和transition-duration属性极其类似,不同的是transition-duration是用来设置过渡动画的持续时间,而transition-delay ...

  2. android_demo01

    /layout/activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/ ...

  3. JavaScript中Date(日期对象),Math对象--学习笔记

    Date对象 1.什么是Date对象? 日期对象可以储存任意一个日期,并且可以精确到毫秒数(1/1000 秒). 语法:var Udate=new Date();  注:初始值为当前时间(当前电脑系统 ...

  4. Cortex-R5

    TCM:Tightly Coupled Memory,连接到RAM等memory中,但是CPU读写速度很快. ECC:Error Checking and Correction PMU:Perform ...

  5. 轻量linux-Crunch bang

    主页地址:http://crunchbang.org crunch bang11昵称 wheezy crunchbang 11 基于 debian7

  6. wireshark抓包

    ip.addr==IP地址(192.168.1.100)&& http

  7. 认识Swift

    Swift 是一门新的编程语言,用于编写 iOS 和 OS X 应用程序.Swift 结合了 C 和 Objective-C 的优点并且不受C兼容性的限制.Swift 使用安全的编程模式并添加了很多新 ...

  8. JSP页面跳转方式

    JSP页面跳转方式 1.利用按钮+javascript进行跳转 <input type="button" name="button2" value=&qu ...

  9. 1.struts2开发流程

    1下载struts包,下载地址为:http://archive.apache.org/dist/struts/library/   2.解压后将lib下的这几个jar包放到自己写的web项目中 放到这 ...

  10. JS参数传值

    1.JS获取URL参数值 //js获取url参数值 function request(paras) { var url = location.href; , url.length).split(&qu ...