.NET Framework IEnumerable的扩展方法
示例
ForEach()在List<T>类上定义,但在IQueryable<T>或上未定义IEnumerable<T>。在这种情况下,您有两种选择:
先列出
将评估枚举(或查询),将结果复制到新列表中或调用数据库。然后在每个项目上调用该方法。
IEnumerable<Customer> customers = new List<Customer>(); customers.ToList().ForEach(c => c.SendEmail());
由于创建了中间列表,因此此方法具有明显的内存使用开销。
扩展方式
编写扩展方法:
public static void ForEach<T>(this IEnumerable<T> enumeration, Action<T> action)
{
foreach(T item in enumeration)
{
action(item);
}
}采用:
IEnumerable<Customer> customers = new List<Customer>(); customers.ForEach(c => c.SendEmail());
警告:框架的LINQ方法旨在纯粹的目的而设计,这意味着它们不会产生副作用。该ForEach方法的唯一目的是产生副作用,并且在这方面与其他方法有所不同。您可以考虑只使用普通foreach循环。
热门推荐
1 训练狗狗基础
2 怎么训练狗狗笑
3 怎么训练狗狗卧下
4 上海狗狗训练基地
5 训练狗狗排便
6 狗狗基础训练
8 如何训练狗狗装死
9 狗狗站姿训练
10 狗狗训练用品
11 训练狗狗吧
12 狗狗要怎么训练
13 怎么训练狗狗玩球
14 训练狗狗唤回
15 狗狗训练躺下
16 狗狗训练指令
17 狗狗的训练技巧
18 狗狗不好训练