こんにちは、EGの尾里です。
開発で頻繁に利用するLINQですが、なかなか使いこなせないので今回はよく使う方法をアウトプットしていきたいと思います!
LINQって?
LINQとは統合言語クエリと言われ、さまざまな種類のデータ集合に対して問い合わせを可能にするために言語に統合された機能です。ざっくり説明すると、For文やForeach文を使ったループ処理を簡潔に置き換えたものです。LINQを使うことで配列やList、Dictionalyといったコレクションの要素を容易に取得することが可能になります。
よく使うパターン
まずLINQの戻り値はIEnumerable型となり、場合に応じてToListやToArrayに変換する必要があります。それを踏まえて、①要素を取得したいとき②要素を調べたいとき③取得の工夫の3つのカテゴリーでよく使うパターンを抜粋します!
①要素を取得したいとき
First・・・要素の先頭を返す(空や該当する要素がない時は例外が発生)FirstOrDefault・・・要素の先頭を返す(空や該当する要素がない時は型のデフォルトを返す) Where・・・取得条件を指定して該当する要素のみ返す
②要素を調べたいとき
Any・・・条件を満たす要素があるかどうかを返す(True/False)Contains・・・条件を満たす要素があるかどうかを返す(True/False)
③取得の工夫
Select・・・該当の要素に処理を取得できる(例:3で割った余りを取得など)OrderBy・・・該当の要素を並び替えて取得できる GroupBy・・・該当の要素をグループ化して取得できる
少し使ってみましょう。下記のようなフルーツと価格の配列から条件付きで要素を取得します。
Where・OrderBy・Selectを駆使して取得しました。このように様々なLINQの関数を用いることで、より読みやすいコーディングを実現できます。
おわりに
いかがでしたでしょうか。LINQを利用すると、例えばForeachで複雑な処理を行うよりも読みやすくバグが発生しにくいといったメリットがあります。ただ、全要素にアクセスしにいくことからパフォーマンスの低下を招く要因としてあげられることもあるため、Where句を駆使するなど工夫して利用していく必要があると思います。
コメント