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 中国語 Web サイトの他の関連記事を参照してください。