使用foreach循环或ForEach LINQ方法之间是否存在任何差异(性能或其他)?
对于上下文,这是我的一个方法的一部分:
foreach (var property in typeof(Person).GetProperties())
{
Validate(property.Name);
}
Run Code Online (Sandbox Code Playgroud)
我也可以使用此代码执行相同的任务:
typeof(Person)
.GetProperties()
.ToList()
.ForEach(property => Validate(property.Name));
Run Code Online (Sandbox Code Playgroud)
什么时候使用循环结构比使用方法链更好?
这是我使用该ForEach方法的另一个例子,但可以轻松使用foreach循环和变量:
// LINQ
PrivateData.Database.Users
.Cast<User>()
.Where(user => user.LoginType == LoginType.WindowsUser)
.Select(user => new { Name = user.Name, Login = user.Login })
.ToList()
.ForEach(result => WriteObject(result));
// Loop
var users = PrivateData.Database.Users
.Cast<User>()
.Where(user => user.LoginType == LoginType.WindowsUser)
.Select(user => new { Name = user.Name, Login = user.Login });
foreach(var user in users)
{ …Run Code Online (Sandbox Code Playgroud)