このブログではAffinger5を使用しています。
今回のテーマ
こんばんは、サルモリです。
今回は今まで色々なLinqのメソッドを紹介してきたので、今まで紹介したメソッドを組み合わせて使ってみましょう。
今回のテーマ
Linqメソッドを組み合わせて使ってみよう!
この記事では、WhereとSelectメソッドを使っていきたいと思います。
各メソッドの説明に関しては、下記の記事にかいております。
CHECK
-
-
C# Linqはとても便利なので使い方を覚えよう。Selectメソッド、Whereメソッドを解説します。
このブログではAffinger5を使用しています。ブログテーマが気に入った方はコチラをクリック 今回のテーマ こんばんは、サルモリです! 今回は下記の記事について書いていこうと思います。 今回のテーマ ...
続きを見る

他のLinqの記事についてはこちら
Linqメソッドの解説の流れ
下記の流れで説明したいと思います。
行いたい処理の例を書きます。
Linqを使用しない書き方と使用する書き方のソースコードを書いていきます。
ソースコードには、配列とリストを使います。
WhereとSelectを一緒に使う例1
WhereとSelectを一緒に使って目的の処理を実装してみます。今回はLinqを使用しない例の記述はなしです。

行いたい処理
5以上の要素のみを2倍にした値を取り出したい。
Linqを使用する例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
using System; using System.Collections.Generic; using System.Linq; namespace ConsoleApp2 { class Program { static void Main(string[] args) { int[] array1 = new int[] {3,6,5,3,8,2,1,9,3}; var results = array1.Where(n => n >= 5).Select(n => n * 2).ToArray(); foreach(var item in results) Console.WriteLine(item); } } } |
result
12
10
16
18
5以上の値が2倍になって返ってきてますね!Whereで5以上のみ抽出し、抽出した値にSelectで2を掛けています。
WhereとSelectを一緒に使う例2
String型の配列のパターンもやってみます。
行いたい処理
文字列にaを含む要素だけ取り出し、語尾にmanをつける。
Linqを使用する例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
using System; using System.Collections.Generic; using System.Linq; namespace ConsoleApp2 { class Program { static void Main(string[] args) { string[] array1 = new string[] {"ice","rock","air","cut","wood"}; var results = array1.Where(n => n.Contains("a")).Select(n => n + "man").ToArray(); foreach(var item in results) Console.WriteLine(item); } } } |
result
airman
Whereを使うときは相方としてContainsもよく使うのでぜひ一緒に覚えてください。
今回の場合はaを含むとしました。対象となるのはエアーマンだけしたね。
リストでも同じことができます。
行いたい処理
文字列にoを含む要素だけ取り出し、語尾にmanをつける。
Linqを使用する例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
using System; using System.Collections.Generic; using System.Linq; namespace ConsoleApp2 { class Program { static void Main(string[] args) { List<string> list = new List<string>(); list.Add("ice"); list.Add("rock"); list.Add("air"); list.Add("cut"); list.Add("wood"); var results = list.Where(n => n.Contains("o")).Select(n => n + "man").ToArray(); foreach(var item in results) Console.WriteLine(item); } } } |
result
rockman
woodman
リストでも基本的に同様です。
このようにLinqは組み合わせて使うとさらに便利に使うことが可能です。
このように使うことが可能なのは、Whereメソッド、Selectメソッド両方ともIEnumerable型で結果を返してくれるからです。
さらに、配列やリストはIEnumerableを実装しているので、配列化やリスト化も自由にできます。
この点を覚えておけば、どんどんLinqを扱っていけると思います!
他のLinqの記事についてはこちら
まとめ
今回はWhereメソッドとSelectメソッドを一緒に使う例をみました。組み合わせて使うと本当に色々なことが出来るので、
ぜひ、みなさんも試してみてください!
他の記事でも色々紹介したメソッドを存分に使って組み合わせ例を沢山出していきたいと思いますので、楽しみにしていてください。
今回の記事は以上です。最後まで見て頂きありがとうございました。

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