今回のテーマ
こんばんは、サルモリです。
下記の記事の続きです。今回もLinqのメソッドを紹介してきます。
CHECK
-
【C# sharp Linq】Count、SequenceEqual、FirstOrDefault、LastOrDefaultメソッドを解説します。
ChatGPTのAPIを使わずに自動化することが可能です。 下記の本を読めば、ChatGPT4でも料金掛からずに自動化できます!KindleUnlimited会員であれば無料で読めます。 今回のテーマ ...
続きを見る
今回のテーマ
Linqのメソッド、Take、Skip、TakeWhile、SkipWhileメソッドついて解説します。
今回は上記の4つのメソッドについて解説します。
他のLinqの記事についてはこちら
Take、Skip、TakeWhile、SkipWhileについて
Take
指定した値分要素を取り出します。
Skip
指定した値分要素を飛ばします。
TakeWhile
指定した条件を満たしている間だけ値を取り出します。
SkipWhile
指定した条件を満たしている間は要素を読み飛ばします。
Linqメソッドの解説の流れ
下記の流れで説明したいと思います。
行いたい処理の例を書きます。
Linqを使用しない書き方と使用する書き方のソースコードを書いていきます。
ソースコードには、配列を使います。
Takeの使い方
Takeの使い方について、例を書いていきます。
行いたい処理
3つ目の要素まで値を出力する。
Linqを使用しない例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
using System; using System.Collections.Generic; using System.Linq; namespace ConsoleApp2 { class Program { static void Main(string[] args) { string[] array1 = new string[] {"lion" ,"mouse" , "cat", "dog","fox","bear"}; List<string> listresults = new List<string>(); for(var i = 0;i < 3; i++) { listresults.Add(array1[i]); } foreach (var item in listresults) { Console.WriteLine(item); } } } } |
result
lion
mouse
cat
3回分の要素をListに格納する処理にしました。
続けてLinqを使用した例です。
Linqを使用する例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
using System; using System.Linq; namespace ConsoleApp2 { class Program { static void Main(string[] args) { string[] array1 = new string[] {"lion" ,"mouse" , "cat", "dog","fox","bear"}; var results = array1.Take(3); foreach (var item in results) { Console.WriteLine(item); } } } } |
result
lion
mouse
cat
指定した分の要素を取り出すのは、Takeを使えば簡単に実現できます。
Skip
続けてSkipの使い方の例を見てみましょう。
行いたい処理
4つ目以降の要素を取り出して、出力したい。
Linqを使用しない例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
using System; using System.Collections.Generic; using System.Linq; namespace ConsoleApp2 { class Program { static void Main(string[] args) { string[] array1 = new string[] {"lion" ,"mouse" , "cat", "dog","fox","bear"}; List<string> resultlist = new List<string>(); for(int i = 3;i < array1.Length; i++) { resultlist.Add(array1[i]); } foreach(var item in resultlist) { Console.WriteLine(item); } } } } |
result
dog
fox
bear
Takeで説明した繰り返し文を4から始めるようにしました。
次はLinqを使った例をみてみましょう。
Linqを使用する例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
using System; using System.Collections.Generic; using System.Linq; namespace ConsoleApp2 { class Program { static void Main(string[] args) { string[] array1 = new string[] {"lion" ,"mouse" , "cat", "dog","fox","bear"}; var results = array1.Skip(3); foreach(var item in results) { Console.WriteLine(item); } } } } |
result
dog
fox
bear
LinqのSkipメソッドを使用したほうが可読性が凄くあがりますね。
TakeWhile
ここからはLinqを使用した例のみとさせてください 😥
TakeWhileの使い方です。
行いたい処理
文字列が4の要素の間、値を出力する。
Linqを使用する例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
using System; using System.Linq; namespace ConsoleApp2 { class Program { static void Main(string[] args) { string[] array1 = new string[] {"lion" , "bear", "cat", "dog","fox","goat", "mouse" }; var results = array1.TakeWhile(n => n.Length == 4); foreach(var item in results) { Console.WriteLine(item); } } } } |
result
lion
bear
文字列が4の要素が出力されています。文字列が4以外の要素になった場合、要素を取り出すのを止めています。
SkipWhile
最後にSkipWhileの動きを学びましょう。
行いたい処理
文字列が4の要素の間読み飛ばす。
Linqを使用する例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
using System; using System.Linq; namespace ConsoleApp2 { class Program { static void Main(string[] args) { string[] array1 = new string[] {"lion" , "bear", "cat", "dog","fox","goat", "mouse" }; var results = array1.SkipWhile(n => n.Length == 4); foreach(var item in results) { Console.WriteLine(item); } } } } |
result
cat
dog
fox
goat
mouse
初めの文字列が4の要素を読み飛ばしてそれ以降の要素を取り出しています。
注意してほしいのは、1度でも条件を満たさない文字列があった場合は、それ以降はそのまま取り出すことです。
他のLinqの記事についてはこちら
まとめ
今回もLinqメソッドの紹介記事でした。今回の取り上げたメソッドを下記に纏めます。
今回のメソッド一覧
- Take
- Skip
- TakeWhile
- SkipWhile
今回紹介したメソッドは今まで紹介したメソッドよりも使う頻度は少ないですが、
覚えておくと便利です。組み合わせて使ったりもできるので、その記事についてもそろそろ書きたいと考えています。
今回の記事は以上です。最後まで見て頂きありがとうございました。
次回の記事
CHECK
-
【C# sharp Linq】Distinct、OrderBy、OrderByDescendingメソッドを解説します。
ChatGPTのAPIを使わずに自動化することが可能です。 下記の本を読めば、ChatGPT4でも料金掛からずに自動化できます!KindleUnlimited会員であれば無料で読めます。 今回のテーマ ...
続きを見る
他のLinqの記事についてはこちら