LINQを使用してコレクション内のすべてのオブジェクトを更新する 質問する

LINQを使用してコレクション内のすべてのオブジェクトを更新する 質問する

LINQ を使用して次のことを実行する方法はありますか?

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

明確に言うと、コレクション内の各オブジェクトを反復処理し、各オブジェクトのプロパティを更新したいと考えています。

私のユースケースは、ブログ投稿にたくさんのコメントがあり、ブログ投稿の各コメントを反復処理して、ブログ投稿の日時を +10 時間に設定することです。SQL で実行することもできますが、ビジネス レイヤーで保持したいと考えています。

ベストアンサー1

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

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

遅延評価ToListのため、選択をすぐに評価するには が必要です。

おすすめ記事