首先,我知道List<>
框架中已有的泛型类的方法会迭代List<>
.
但是作为一个例子,编写ForEach方法迭代List<>
a Console.WriteLine(object.ToString())
的每个对象并对每个对象执行操作的正确语法是什么.一些把该List<>
作为第一个参数和lambda表达式作为第二个参数.
我见过的大多数示例都是作为扩展方法完成的,或者涉及LINQ.我正在寻找一个简单的方法示例.
public void Each(IEnumerable items, Action action) { foreach (var item in items) action(item); }
......并且这样称呼它:
Each(myList, i => Console.WriteLine(i));
上面也可以用较少的代码编写:
new List(items).ForEach( i => Console.WriteLine(i) );
这将创建一个通用列表并使用IEnumerable填充它,然后调用列表对象ForEach.
这是你要的吗?
int[] numbers = { 1, 2, 3 }; numbers.ToList().ForEach(n => Console.WriteLine(n));
public static void Each(this IEnumerable items, Action action) { foreach (var item in items) { action(item); } }
......并且这样称呼它:
myList.Each(x => { x.Enabled = false; });