2010年1月30日土曜日

int型の要素をもつListを定義して、Linq(Language Integrated Query)を使用してそのデータを取得し、そのデータを表示した後、Listの要素の順番を入れ替えてもう1度Linqで取得したデータを表示してみて、Linqの遅延実行の機能によりListの要素の順番の入れ替えが反映されることを確認してみる。

using System;
using System.Collections.Generic;
using System.Linq;

class Mainclass
{
    static void Main()
    {
        // List Classをインスタンス化
        var list = new List<int>();

        // listに値を代入
        int i = 0;
        while (i < 5)
        {
            list.Add(i + 1);
            i++;
        }
        
        // LINQによってデータを取得
        var linq=from n in list select n;

        // 出力値:1 2 3 4 5
        foreach (var n in linq)
        {
            Console.Write("{0} ", n);
        }
        // 改行
        Console.WriteLine();

        // list[1]=2,list[2]=3を入れ替える
        var tmp=list[2];
        list[2] = list[1];
        list[1] = tmp;

        /* Linqの遅延実行の機能を確認
         * (LINQによるデータの取得が再び行われる
         * のでlinqに要素の入れ替えが反映される)
         * 出力値:1 3 2 4 5 */
        foreach (var n in linq)
        {
            Console.Write("{0} ", n);
        }
        Console.WriteLine();
    }
}

0 コメント:

コメントを投稿