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

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

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

解决方法

我建议不要这样做.保持一切尽可能可读:
  1. var auditableTables = this.ChangeTracker.Entries()
  2. .Where(e => e.State == EntityState.Added)
  3. .Select(e => e.Entity)
  4. .OfType<IAuditableTable>();
  5.  
  6. foreach (var table in auditableTables)
  7. {
  8. table.ModifiedDate = DateTime.Now;
  9. }

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

猜你在找的C#相关文章