FxCop の提案と私の個人的な傾向に従って、私が指導しているチームに、可能な限り ReadOnlyCollections を使用するように勧めてきました。リストの受信者がその内容を変更できないようにするためだけに。彼らの理論では、これはパンとバターです。問題は、List<> インターフェースが、あらゆる種類の有用なメソッドを公開するよりリッチであることです。なぜ彼らはその選択をしたのですか?
書き込み可能なコレクションをあきらめて返すだけですか? 読み取り専用のコレクションを返し、書き込み可能なコレクションにラップしますか? ああああ。
更新: ありがとうございます。私はフレームワーク デザイン ガイドラインに精通しており、チームが FxCop を使用してそれを実施している理由です。しかし、このチームは VS 2005 を使用しているため (わかっています、わかっています)、LINQ/Extension メソッドが問題を解決すると言って彼らを悲しませています。
彼らは、List.FindAll() と .FindFirst() が foreach ループを記述するよりも明確になることを学びました。今、私は彼らに ReadOnlyCollections を使用するように勧めています。彼らはその明快さを失います。
たぶん、私が気付いていないより深い設計上の問題があるのでしょう。
-- 申し訳ありませんが、元の投稿で VS2005 の制限について言及する必要がありました。ずっと一緒に住んでるから気づかない。