【C#】いつまでも覚えられないLinqのSelectとWhere

はじめに

個人的にいつまでも覚えられないLinqのSelectとWhere。

なんで覚えられないのかを記録したメモ書き、ぼやきなので、あまり実になる内容ではありません。

覚えられない理由

Select

メソッドの名称はSQLから来ているようですが、そのLinqの機能とメソッドが直感的に一致しないと感じてしまう。

C#ではSelectはあるコレクションに対して特定の処理を行い、その結果を返すというもの。

これはTransform等の変換の方が近い。

頑張ってもこの処理に対してSelectという単語の意味が一致するイメージが持てない。

しかし、まぁclassのListに対して特定のメンバーを取り出すという使い方であれば、わからなくはない。

例えば下記のような。。。

class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
    public string Address { get; set; }
}

var people = new List<Person>
{
    new Person { Name = "Alice", Age = 20, Address = "Tokyo" },
    new Person { Name = "Bob", Age = 25, Address = "Osaka" }
};

// 名前だけを「選択」
var names = people.Select(p => p.Name);  // { "Alice", "Bob" }

ということをイメージして覚えるようにする

Where

C#では特定の要素を取り出すような使い方。

SQLでも同様だが、そもそもこの名付けが気持ち悪い。なんでこの機能でwhereなんや・・・

Filterとかにしてほしい。なのでWhere = Filterと覚える。

さいごに

メモれば記憶が定着するだろうということで、書いてみた記事。

毒にも薬にもならないと思いますが、もし最後までくれた方がいたならありがとう。

コメント

タイトルとURLをコピーしました