1. ホーム
  2. c#

[解決済み】LINQを使用してコレクション内のすべてのオブジェクトを更新する

2022-03-23 01:13:44

質問

LINQを使って次のようなことをする方法はありますか?

foreach (var c in collection)
{
    c.PropertyToSet = value;
}

明確に言うと、コレクション内の各オブジェクトを繰り返し処理し、各オブジェクトのプロパティを更新したいのです。

私のユースケースは、ブログ記事にたくさんのコメントがあり、ブログ記事上の各コメントを反復処理し、ブログ記事の日時を+10時間に設定したいです。SQLでもできるのですが、ビジネスレイヤーに残したいのです。

どのように解決するのですか?

を使用することができますが ForEach 拡張メソッドを使用することもできますが、フレームワークだけを使用したい場合は

collection.Select(c => {c.PropertyToSet = value; return c;}).ToList();

ToList のため、select を即座に評価するために必要です。 遅延評価 .