【LINQ】指定のデータ型へ変換(キャスト)するには(Cast変換演算子)

public interface IMessage
{
    void Show();
}

public class Message : IMessage
{
    public int id { get; set; }
    public string message { get; set; }

    public void Show()
    {
        Console.WriteLine(this.message);
    }
}

// データ            
Message[] messages
    = {
        new Message { id = 0, message = "C#" },
        new Message { id = 1, message = "F#" },
        new Message { id = 2, message = "VB.NET" },
        new Message { id = 3, message = "C++" },                    
        };

// IMessageインタフェースに変換
// クエリ式の場合
var query = (from message in messages
                select message).Cast<IMessage>();
foreach (var msg in query) { msg.Show(); } 

// ラムダ式の場合
var lambda = messages.Select(s => s).Cast<IMessage>();
foreach (var msg in lambda) { msg.Show(); } 

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中