Linq

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

このブログではAffinger5を使用しています。

ブログテーマが気に入った方はコチラをクリック

今回のテーマ

こんばんは、サルモリです!

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

今回のテーマ

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

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

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

サルモリ
Linqは本当に便利だよ!

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

Linqを使用する場面

ココがポイント

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

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

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

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

サルモリ
これから、Linqの便利さを実感してほしいよ!

Linqメソッドの解説の流れ

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

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

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

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

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

Selectメソッドの使い方

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

一番使用するSelectメソッドを使ってみるよ!!
サルモリ

行いたい処理

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メソッドの使い方の例を見てみましょう。

サルモリ
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の処理の動きを覚えてマスターしていきましょう!

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

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

サルモリ
Linqは本当に便利だよ!絶対覚えておいてね!

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

CHECK

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

このブログではAffinger5を使用しています。ブログテーマが気に入った方はコチラをクリック 今回のテーマ こんばんは、サルモリです。 今回は下記の記事の続きです。 CHECK 今回のテーマ Lin ...

続きを見る

 

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

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

 

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

他の演習問題はこちら

C#のLinqをさらに学びたい方へ

C#のLinqを理解して頂くために参考書を執筆致しました!

Linqの演習問題はこちらの参考書に載せているので、問題を解いて理解を深めたい方はこちらの参考書チェックしてください!

下記の画像をクリック!!kindleunlimitedの会員であれば無料で見れます!

⇩初心者向け      ⇩中級者向け

C#でChatGPTAPIを使ってブログ作成を自動化しませんか?

-Linq

Ads Blocker Image Powered by Code Help Pro

広告ブロックを検出しました。

ブラウザの広告機能を使用して広告をブロックしていることが検出されました。
ブラウザの広告ブロッカーを無効にし、「更新」をクリックしてください。

Powered By
Best Wordpress Adblock Detecting Plugin | CHP Adblock