使うと簡潔に書けます。SolidColorBrush(c)).ToArray();}では、順を追ってみていきましょう。実例たとえば下記のようなクラスを想定します。動的にブラシの配列を生成して返却しています。違いにご注意ください。アクセスされる度に、動的にオブジェクトが生成されます。このため、このプロパティーへのアクセスが多い場合や生成処理にコストがかかる場合にパフォーマンス上の問題が生じます。動的に生成する必要はありません。書き換えられる可能性は無視します。その配列を返すだけになるため、パフォーマンスは改善します。アクセスがない時点でもブラシの配列が生成されて保持されます。いずれかのメンバーにアクセスされた時点で初期化されます。)たとえばユーザー操作によっては不要になる場合など、「必要になるまで生成を遅延したい」場面というのは結構あります。この例のような軽量なオブジェクトでは実質的に問題になることはありませんが、メモリーを消費するオブジェクトの場合は生成のタイミングを考慮する必要があります。アクセスされた時点で初期化するようにします。一回だけ生成してフィールドに保存するまずは古典的な手法です。返すロジックはわかりやすいのですが、やりたいことの割にコードが長いですね。