<分区>
使用 foreach 循环或 ForEach
LINQ
方法之间是否存在任何差异(性能或其他方面)?
对于上下文,这是我方法之一的一部分:
foreach (var property in typeof(Person).GetProperties())
{
Validate(property.Name);
}
我也可以使用这段代码来执行相同的任务:
typeof(Person)
.GetProperties()
.ToList()
.ForEach(property => Validate(property.Name));
什么时候使用循环结构比使用方法链更好?
这是另一个示例,我使用了 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)
{
WriteObject(user);
}