はじめに
個人的にいつまでも覚えられない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と覚える。
さいごに
メモれば記憶が定着するだろうということで、書いてみた記事。
毒にも薬にもならないと思いますが、もし最後までくれた方がいたならありがとう。
コメント