Linq

C# Linqはとても便利なので使い方を覚えよう。Selectメソッド、Whereメソッドを解説します。

今回のテーマ

こんばんは、かっぱちゃんです。

今回は下記の記事について書いていこうと思います。

今回のテーマ

Linqの使い方を解説。SelectメソッドとWhereメソッドの使い方。

今回はC#のLinqについて学びましょう。

覚えると本当にC#の世界が変わると思いますので、是非使いこなせるようになってくださいね!!

KappaChan
Linqは本当に便利かっぱ!

他のLinqの記事についてはこちら

Linqを使用する場面

ココがポイント

Linqはリストや配列に対して、使用することが多いです。リストや配列の各要素に対して、取得、修正、判定、並び替えなど色々なことが出来ます。

基本的にfor文やforeach文など繰り返しの処理を行う時に使います。

リストや配列はEnumerableインタフェースを実装しているので、Linqを使用することができます。

EnumerableインターフェースにLinqのメソッドが定義されているので、リストや配列でもLinqメソッドが使用することができます。

KappaChan
これから、Linqの便利さを実感してほしいかっぱ!

Linqメソッドの解説の流れ

これから複数の記事に渡って、Linqのメソッドを解説していこうとおもうので、下記のような流れで説明していきたいと思います。

行いたい処理の例を書きます。

Linqを使用しない書き方と使用する書き方のソースコードを書いていきます。

ソースコードには、配列を使います。

この流れで色々なメソッドを解説していこうと思いますので、是非みてくださいね!!

Selectメソッドの使い方

まずはSelectメソッドの使い方について、例を書いていきます。

一番使用するSelectメソッドを使ってみるかっぱ!!
KappaChan

行いたい処理

int型配列の全ての要素に対して2を足す。

Linqを使用しない例

 result
3
4
5
6
7

繰り返しでそれぞれ2を足しています。

続けてLinqを使用した例です。

Linqを使用する例

 result
3
4
5
6
7

繰り返し文を使用して各要素にプラス2をしなければならなかった処理がLinqを使用すると1行で書けています。 これがLinqの強みです。=>は矢印を表しています。

=>はデリゲートを省略したものと覚えて頂ければいいのですが、今回の記事では重要ではないです。

ココがポイント

ここでは、「引数(配列の各要素) => return文の結果」と考えて頂ければと思います。

もう1つ、Selectメソッドを使用した例を書いていきます。

行いたい処理

string型の配列の全ての文字列に「マン」を追加する。

Linqを使用しない例

 result
ロックマン
ファイヤーマン
アイスマン
エレキマン
カットマン
ボンバーマン
ガッツマン

ゲームが好きな人なら知っているロックマン1のボス達ですね!! 😛 (勿論ロックマン以外)

続けて、Linqを使用した例を見てみましょう!

Linqを使用する例

 result
ロックマン
ファイヤーマン
アイスマン
エレキマン
カットマン
ボンバーマン
ガッツマン

Linqの処理は下記の1行です!文字列に対しても簡単に出来ます。

こちらも左辺は引数(配列の各要素)、右辺は戻り値の結果と考えてください。

イメージとして、下記の表をみると分かりやすいかもしれません。

左辺:引数(配列の各要素) 右辺:戻り値の結果
ロック ロックマン
ファイヤー ファイヤーマン
アイス アイスマン
エレキ エレキマン
カット カットマン
ボンバー ボンバーマン
ガッツ ガッツマン

Whereメソッドの使い方

続けてWhereメソッドの使い方の例を見てみましょう。

KappaChan
Whereメソッドもよく使うかっぱ!

行いたい処理

int型配列の中で偶数の条件のみ取りだし、新しい配列を作成する。

Linqを使用しない例

 result
2
4
6

普通に処理しようとすると中々大変ですね 😐 続けてLinqを使った例を見てみます。

Linqを使用する例

 result
2
4
6

Linqのパワー凄くないですか?1行で目的のソースコードが出来てしまいました。

ココがポイント

Linqのソースコードは下記の部分ですね。=>の左辺には配列の各値の引数を右辺には条件を記述します。右辺に記述した条件の結果(true、false)を返します。

Whereメソッドでは、結果がtrueとなる値のみ残してくれます。

もう1つ、文字列の配列を例としてWhereメソッドを使用してみましょう!

行いたい処理

string型の配列から「マン」が付いている文字列のみ出力できるようにしてください。

Linqを使用しない例

 result
ロックマン
エレキマン
カットマン
ボンバーマン

配列の代入するのがめんどくさそうだったので、Listに代入しちゃいました 👿 

Linqを使用すれば、そんな余計なことを考えずに配列そのまま変えるが出来ます!!

Linqを使用する例

 result
ロックマン
エレキマン
カットマン
ボンバーマン

こちらも左辺は引数(配列の各要素)、右辺に記述した条件の戻り値の結果(true、false)と考えてください。

こちらもイメージとして、下記の表を作りました。

左辺:引数(配列の各要素) 右辺:条件の戻り値の結果(条件はContains("マン"))
ロックマン true
ロールちゃん false
ワイリー false
エレキマン true
イエローデビル false
カットマン true
ボンバーマン true

Whereメソッドでは、上記のtrueの要素のみ残るという訳ですね!!

Whereメソッドの使い方は以上です!

まとめ

今回の記事ではLinqの記事1回目として下記のメソッドを取り上げました。

今回のメソッド一覧

  • Select
  • Where

他のメソッドも別記事で紹介しますが、まず一番よく使用するSelectメソッドWhereメソッドでLinqの処理の動きを覚えてマスターしていきましょう!

今回の記事は以上とします。他メソッドについても別記事で沢山紹介していきますね。

最後まで見て頂きありがとうございました。

KappaChan
Linqは本当に便利かっぱ!絶対覚えておくかっぱ!

次回の記事はこちらです。次回はLinqのAllメソッドとAnyメソッドについてです!

CHECK

C# Linqはとても便利なので使い方を覚えよう。Anyメソッド、Allメソッドを解説します。

今回のテーマContents1 今回のテーマ2 LinqのAnyとAllを使用する場面2.1 Any2.2 All3 Linqメソッドの解説の流れ4 Anyの使い方5 Allの使い方6 まとめ こんば ...

続きを見る

 

他のLinq記事についてはこちらに纏めてあります!!

他のLinqの記事についてはこちら

 

Linqの使い方に慣れてきて、自身のある方は演習問題にチャレンジしてみよう!!

他の演習問題はこちら

プログラミングを一人で独学をするならプロからオンラインで教えてもらいましょう!10倍効率いいです!!

数多くあるプログラミング教室の中で2つのオンライン教室を厳選しました!どちら共、エンジニアとしての就職までサポートしてくれる本当にオススメの教室です。個別相談は完全無料です!!

カウンセリングは完全無料!未経験でITエンジニアを目指したい方にオススメ!

Webエンジニアになりたい方にオススメ!個別相談は無料!

KappaChan
オンラインのプログラミング教室は本当にオススメかっぱ!!

新しいサイト作りました。アニメのまとめサイトです。

レインボーリアルタイムTwitter(アニメ版)

レインボーリアルタイムTwitter(映画版)

-Linq

X