.net column

.NET開発者のためのブログメディア
プログラムコード

【LINQのメソッド紹介その2】Selectの概要とコードの例

2020年02月14日

LINQは様々なデータ形式に対して、よく使われる処理などのクエリーをライブラリー化して利用できるようにしたものです。その中のひとつである、Selectメソッドはコレクションに対する処理を一括して行うのに適しています。これにより、for文やForEachといったループ処理で行っていたことをよりシンプルにすることが可能です。

SE
LINQのSelectってforやForEachとどのような違いがあるんですか?
PM
繰り返し処理という意味では同じですが、条件によってはSelectの方が使いやすいことがありますね。早速どういうことができるか見ていきましょう。

LINQのSelectメソッドでできること

Selectメソッドは、コレクション(いわゆる配列)の一つ一つに対するデータ処理を一括して行うのに適しています。同じような処理を行う場合であれば、ForEachメソッドなどよりも、シンプルなコードで記述することが可能です。

Selectメソッドのサンプルコード

実行結果

このコードでは、配列内の数値を5倍した数値を出力するようにします。

実行結果

このコードでは、コレクション内のデータ(数値)を4で除した余りを出力しています。

実行結果

見かけは「配列の中身を加工して表示する2」と同じになりますが、foreach内で余りを計算する処理を入れる必要があります。

SE
同じ繰り返し処理なのに、ForEachと比べると確かにコードがシンプルですね。
PM
Select単体で条件を付けるのはできない代わりに、コードがきれいになるからプログラマーとしては使い方を覚えておきたいところです。
SE
単体でということは、ほかにも別の使い方があるということですか?
PM
ほかのLinqメソッドとの組み合わせなどの利用パターンがありますが、それはまた別の機会に紹介しましょう。

コレクションの形式を変換するには最適

Selectメソッドは、コレクションのデータを射影するのに向いています。ネストしたリストを平坦化する場合には、ネストしたリストを平坦化する場合には、SelectManyというメソッドがあります。用途に応じて使い分けていきましょう。


.NET分野でのキャリアアップをお考えの方は、現在募集中の求人情報をご覧ください。

求人一覧

また、直接のエントリーも受け付けております。

エントリー(応募フォーム)