2011年05月12日
川俣晶の縁側技術関連執筆情報『C#ショートコードプログラミング』読者サポートtotal 2457 count

C#ショートコードプログラミング・補遺・雑多な型のデータを含むコレクションから特定の型のデータだけ扱う

Written By: 川俣 晶連絡先

対応バージョン: C# 3.5

 雑多な型のデータを含むコレクションから特定の型のデータだけ処理したいとします。nullも対象外とします。

OLD CODE: §

using System;

using System.Linq;

class Program

{

    static void Main(string[] args)

    {

        object[] obj = { "abc", null, 123 };

        foreach (var n in obj)

        {

            if (n is string)

            {

                Console.WriteLine("{0} has {1} characters", n, ((string)n).Length);

            }

        }

    }

}

NEW CODE: §

using System;

using System.Linq;

class Program

{

    static void Main(string[] args)

    {

        object[] obj = { "abc", null, 123 };

        foreach (var n in obj.OfType<string>())

        {

            Console.WriteLine("{0} has {1} characters", n, n.Length);

        }

    }

}

実行結果: §

abc has 3 characters

解説: §

 OfTypeメソッド。うっかり見落としていましたが、強力です。これを使うだけで、特定の型のオブジェクトだけ抽出できます。もちろん、その型に変換可能なオブジェクトも含まれます。クエリ式で特定の型を除外する必要も無くなります。

Facebook

キーワード【 川俣晶の縁側技術関連執筆情報『C#ショートコードプログラミング』読者サポート
【『C#ショートコードプログラミング』読者サポート】の次のコンテンツ
2012年
05月
11日
C#ショートコードプログラミング・語句訂正及びサンプルソース訂正
3days 0 count
total 2465 count
【『C#ショートコードプログラミング』読者サポート】の前のコンテンツ
2011年
03月
18日
C#ショートコードプログラミング・補遺・3つ以上の文字列からパスを生成する
3days 0 count
total 3507 count

このコンテンツを書いた川俣 晶へメッセージを送る

[メッセージ送信フォームを利用する]

メッセージ送信フォームを利用することで、川俣 晶に対してメッセージを送ることができます。

この機能は、100%確実に川俣 晶へメッセージを伝達するものではなく、また、確実に川俣 晶よりの返事を得られるものではないことにご注意ください。

このコンテンツへトラックバックするためのURL

http://mag.autumn.org/tb.aspx/20110512170800
サイトの表紙【『C#ショートコードプログラミング』読者サポート】の表紙【『C#ショートコードプログラミング』読者サポート】のコンテンツ全リスト 【『C#ショートコードプログラミング』読者サポート】の入手全リスト 【『C#ショートコードプログラミング』読者サポート】のRSS1.0形式の情報このサイトの全キーワードリスト 印刷用ページ

管理者: 川俣 晶連絡先

Powered by MagSite2 Version 0.34 (Alpha-Test) Copyright (c) 2004-2018 Pie Dey.Co.,Ltd.