如何扩展IEnumerator 的 ForEach<T>(Action)方法
2009-10-14 10:34
344 查看
其实挺简单,但对于我这水平的人来说,却费了小半天工夫,为啥?对.net的类库太不熟悉!
好了,自我检讨过后,讲述过程并贴出代码:
首先,在您的解决方案中新建一个项目并添加一个新的扩展类,或者在已有项目中添加一个新扩展类也可以,如下图所示(ClassLibrary1即是新添的项目):
using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5
6namespace ClassLibrary1
7{
8 public static class EnumerExtension
9 {
10 public static void ForEach<T>(this IEnumerable<T> enumerable, Action<T> action) {
11 if (action != null)
12 {
13 int eCount = enumerable.Count();
14 for (int i = 0; i < eCount; i++)
15 {
16 action(enumerable.ElementAt(i));
17 }
18 }
19 }
20 }
21}代码很少,但我却Reflection了不少类库,比如mscorlib.dll,唉,最终还是如此简短的几行。
希望能给初学者以帮助!
好了,自我检讨过后,讲述过程并贴出代码:
首先,在您的解决方案中新建一个项目并添加一个新的扩展类,或者在已有项目中添加一个新扩展类也可以,如下图所示(ClassLibrary1即是新添的项目):
using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5
6namespace ClassLibrary1
7{
8 public static class EnumerExtension
9 {
10 public static void ForEach<T>(this IEnumerable<T> enumerable, Action<T> action) {
11 if (action != null)
12 {
13 int eCount = enumerable.Count();
14 for (int i = 0; i < eCount; i++)
15 {
16 action(enumerable.ElementAt(i));
17 }
18 }
19 }
20 }
21}代码很少,但我却Reflection了不少类库,比如mscorlib.dll,唉,最终还是如此简短的几行。
希望能给初学者以帮助!
相关文章推荐
- 扩展IEnumerable<T> ForEach()方法
- 扩展IEnumerable<T> ForEach()方法
- Jsp中如何在<c:forEach >标签内获取items集合的长度方法
- Jsp中如何在<c:forEach >标签内获取items集合的长度方法
- 用Java简单实现C#的参数为Action<T> Function<T,boolean>扩展方法
- Action<UnityEngine.Object>的使用方法
- 探究 List<T> 集合的Where方法是如何实现的
- 【转载】MVC分页控件之二,为IQueryable定义一个扩展方法,直接反回PagedList<T>结果集
- 使用html <a href=""/>标签连接action的方法
- MVC分页控件之二,为IQueryable定义一个扩展方法,直接反回PagedList<T>结果集(转)
- SPRING IN ACTION 第4版笔记-第四章ASPECT-ORIENTED SPRING-010-Introduction为类增加新方法@DeclareParents、<aop:declare-parents>
- 为IEnumerable<T>增加Combine的扩展方法
- XAF 如何扩展应用程序模型<二> 编辑ListView自动保存
- 工作总结 for 另类写法 循环加时间 集合合并 也是用的 static class Enumerable (IEnumerable<T>的扩展方法) (IEnumerable<T> 的 工具类) (所有集合 数组都实现IEnumerable<T>)
- Jsp中<c:foreach>如何循环得到值,进行修改
- 如何用正确的方法来写出质量好的软件的75条体会 <转>
- Don't know how to iterate over supplied "items" in &lt;forEach&gt;问题的解决方法
- MyBatis<forEach/>如何遍历Map参数里的值
- 用python模仿c#的List<>一组list筛选扩展方法
- 使用struts2的<s:param>等标签向action传值出现中文乱码的解决方法