使用 LINQ 优化 C# 集合更新
LINQ 提供了修改对象集合属性的有效方法。 而 ForEach
扩展方法提供了类似循环的语法:
<code class="language-csharp">collection.ForEach(c => c.PropertyToSet = value);</code>
纯粹基于 LINQ 的方法实现了相同的结果:
<code class="language-csharp">collection.Select(c => { c.PropertyToSet = value; return c; }).ToList();</code>
至关重要的是,ToList()
强制立即执行,克服了 LINQ 固有的惰性求值。
考虑一个实际示例:更新博客评论的时间戳。 要为业务层中每个评论的 DateAdded
属性添加 10 小时:
<code class="language-csharp">var comments = _context.Comments.Where(c => c.BlogPostId == blogPostId); comments.Select(c => { c.DateAdded = c.DateAdded.AddHours(10); return c; }).ToList(); _context.SaveChanges();</code>
这种 LINQ 方法简化了更新过程,消除了直接 SQL 操作的需要,并将数据修改巧妙地集成到您的业务逻辑中。
以上是LINQ 如何高效更新 C# 中集合的属性?的详细内容。更多信息请关注PHP中文网其他相关文章!