C#のLinqのメソッド一覧

【C# sharp Linq】Selectメソッド、Whereメソッドを解説します。

ChatGPTのAPIを使わずに自動化することが可能です。
下記の本を読めば、ChatGPT4でも料金掛からずに自動化できます!KindleUnlimited会員であれば無料で読めます。

C#言語のLinqとは?

はじめに

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

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

今回のテーマ

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

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

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

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

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

Linqを使用する場面

ココがポイント

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

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

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

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

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

Linqメソッドの解説の流れ

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

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

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

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

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

C#のLinqを徹底的に学びたい方は画像をクリックしてご覧ください!
KindleUnlimited会員であれば、全ての本をご覧頂けます。 Linqを理解すれば、C#プログラミングの世界が変わる 第1版

Selectメソッドの使い方

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メソッドの使い方

Linqの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メソッドの使い方は以上です!

SelectメソッドとWhereメソッドを組み合わせる

SelectメソッドとWhereメソッドを一緒に使う例1

WhereとSelectメソッドを一緒に使用することも可能です。

使い方の例は今まで通りにやっていくよ!!
サルモリ

行いたい処理

5以上の要素のみを2倍にした値を取り出したい。

Linqを使用する例



 result
12
10
16
18

5以上の値が2倍になって返ってきてますね!Whereで5以上のみ抽出し、抽出した値にSelectで2を掛けています。

SelectメソッドとWhereメソッドを一緒に使う例2

String型の配列のパターンもやってみます。

行いたい処理

文字列にaを含む要素だけ取り出し、語尾にmanをつける。

Linqを使用する例



 result
airman

Whereを使うときは相方としてContainsもよく使うのでぜひ一緒に覚えてください。

今回の場合はaを含むとしました。対象となるのはエアーマンだけしたね。

リストでも同じことができます。

行いたい処理

文字列にoを含む要素だけ取り出し、語尾にmanをつける。

Linqを使用する例



 result
rockman
woodman

リストでも基本的に同様です。

このようにLinqは組み合わせて使うとさらに便利に使うことが可能です。

このように使うことが可能なのは、Whereメソッド、Selectメソッド両方ともIEnumerable型で結果を返してくれるからです。

さらに、配列やリストはIEnumerableを実装しているので、配列化やリスト化も自由にできます。

この点を覚えておけば、どんどんLinqを扱っていけると思います!

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

まとめ

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

今回のメソッド一覧

  • Select
  • Where

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

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

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

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

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

CHECK

【C# sharp Linq】Anyメソッド、Allメソッドを解説します。

ChatGPTのAPIを使わずに自動化することが可能です。 下記の本を読めば、ChatGPT4でも料金掛からずに自動化できます!KindleUnlimited会員であれば無料で読めます。 今回のテーマ ...

続きを見る

 

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

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

 

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

他の演習問題はこちら

-C#のLinqのメソッド一覧

Ads Blocker Image Powered by Code Help Pro

Ads Blocker Detected!!!

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

Powered By
Best Wordpress Adblock Detecting Plugin | CHP Adblock