都内で働くSEの技術的なひとりごと / Technical soliloquy of System Engineer working in Tokyo

都内でサラリーマンやってます。SQL Server を中心とした (2023年からは Azure も。) マイクロソフト系(たまに、OSS系などマイクロソフト以外の技術も...)の技術的なことについて書いています。日々の仕事の中で、気になったことを技術要素関係なく気まぐれに選んでいるので記事内容は開発言語、インフラ等ばらばらです。なお、当ブログで発信、発言は私個人のものであり、所属する組織、企業、団体等とは何のかかわりもございません。ブログの内容もきちんと検証して使用してください。英語の勉強のため、英語の

今は便利になったと思うこと ( OfType<TResult> )

 うぅ、今月は画像入りの記事を書きすぎたので、もう画像を記事に貼れません。というわけで、画像を使用しないソースコードのみで完結する記事を書きます。 最近、昔のソースを眺めていて、便利になったなぁと思うことがありました。

 LINQ が非常に優れているのは、.NETFramework 開発者であれば既に常識と言っても過言ではありませんよね。配列等に格納されているインスタンスの中から、IDisposable インターフェースを実装しているオブジェクトのみに Dispose ( ) する場合は以下のソースを記述していました。

foreach (var obj in objects)
{
    if (obj is IDisposable)
    {
        (obj as IDisposable).Dispose();
    }
}

 LINQ 使うとこうなりますね。

foreach ( var obj in objects.OfType<IDisposable>())
{
    obj.Dispose();
}

 if 文と as 演算子 がなくなり、コードがスッキリしました。いいですねぇ、LINQ