C#语言的哪个部分是.ForEach()?

Edw*_*uay 9 c# linq nomenclature

如果我向某人解释以下ForEach功能,那么准确地说#2是" LINQ foreach方法 "还是仅仅是List<T>一种与LINQ没有正式关联的" 扩展方法 "?

var youngCustomers = from c in customers
                     where c.Age < 30
                     select c;

//1. traditional foreach approach
foreach (var c in youngCustomers)
{
    Console.WriteLine(c.Display());
}

//2. LINQ foreach approach?
youngCustomers.ToList().ForEach(c => Console.WriteLine(c.Display()));
Run Code Online (Sandbox Code Playgroud)

jk.*_*jk. 24

List<T>虽然人们经常为其他人提供自己的扩展方法,但这是一种常规方法IEnumerable<T>.LINQ不提供ForEach扩展,因为它的功能/使用不可变类型的设计目标,ForEach是一种固有的副作用/命令操作.


Luk*_*keH 10

它与LINQ无关,它不是扩展方法.

ForEachList<T>类上的普通实例方法.

(如果你想真的很挑剔,那么ForEach根本不是C#语言的一部分:它是.NET基类库的一部分.)