c# – 我可以将foreach和LINQ查询组合成一个吗?

前端之家收集整理的这篇文章主要介绍了c# – 我可以将foreach和LINQ查询组合成一个吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个C#代码,如下所示:
foreach (var entry in this.ChangeTracker.Entries()
                     .Where(e => e.Entity is IAuditableTable &&
                                 e.State == EntityState.Added))
{
    IAuditableTable e = (IAuditableTable)entry.Entity;
    e.ModifiedDate = DateTime.Now;
}

这似乎是foreach和LINQ的结合.有人可以告诉我,我可以删除foreach并将其组合成一个LINQ语句

解决方法

我建议不要这样做.保持一切尽可能可读:
var auditableTables = this.ChangeTracker.Entries()
                                        .Where(e => e.State == EntityState.Added)
                                        .Select(e => e.Entity)
                                        .OfType<IAuditableTable>();

foreach (var table in auditableTables)
{
    table.ModifiedDate = DateTime.Now;
}

我的经验法则是编码 – 如果你不能像一个句子一样读它,那么它需要修复.

原文链接:https://www.f2er.com/csharp/94396.html

猜你在找的C#相关文章