systembankスタッフのブログ

システムバンクスタッフのブログです。

LINQの話 その2

今回は抽出

LINQではデータの集合にリレーショナルデータベースを扱うように操作することができます、いわゆるSQLですね。

SQLがわからないという方はまたの機会に。

抽出といえばWhere

データ集計からある条件に従うもののみを取り出すことをべた書きするのが好きなプログラマはいないはず、私もメンドクサイです。なので.NET Frameworkを設計してくれた偉い人が便利なメソッドを用意してくれています。

それが「Where」

くどくて済みません。

どんな感じなのか

例えば集合から特定の条件に一致するもののみを抽出した別の集合を作る例で説明します。

べた書きすると

Person[] persons = new Person[]
{
    new Person { Name = "Mike", Age = 55 },
    new Person { Name = "Edo", Age = 48 },
    new Person { Name = "Ant", Age = 40 },
};

List<person> list = new List<person>();
foreach(var p in persons)
{
    if (p.Age >= 45) 
    {
        list.add(p);
    }
}

Personリストから45才以上のオブジェクトをlistに抽出しました。

LINQを使って同じことをしてみます。

Person[] persons = new Person[]
{
    new Person { Name = "Mike", Age = 55 },
    new Person { Name = "Edo", Age = 48 },
    new Person { Name = "Ant", Age = 40 },
};

List list = persons.Where(p => p.Age >= 45).ToList();

これだけです、覚えてしまえばとても簡単に記述できます。

Whereメソッドでは元の集合をラムダ式で指定した条件で抽出し結果(ここではEnumerable型)を戻します。

ToListメソッドは集合をList型に変換してくれます。

次回

次回はデータの取り出し Select について書いてみようと思います。