今回のテーマ
こんばんは、サルモリです。
下記の記事の続きです。今回もLinqのメソッドを紹介してきます。
CHECK
-
【C# sharp Linq】Take、Skip、TakeWhile、SkipWhileメソッドを解説します。
ChatGPTのAPIを使わずに自動化することが可能です。 下記の本を読めば、ChatGPT4でも料金掛からずに自動化できます!KindleUnlimited会員であれば無料で読めます。 今回のテーマ ...
続きを見る
今回のテーマ
Linqのメソッド、Distinct、OrderBy、OrderByDescendingメソッドついて解説します。
今回は上記の3つのメソッドについて解説します。
他のLinqの記事についてはこちら
Distinct、OrderBy、OrderByDescendingについて
Distinct
重複する要素を排除する。
OrderBy
要素の値を昇順に並べる
OrderByDescending
要素の値を降順に並べる
Linqメソッドの解説の流れ
下記の流れで説明したいと思います。
行いたい処理の例を書きます。
Linqを使用しない書き方と使用する書き方のソースコードを書いていきます。
ソースコードには、配列を使います。
Distinctの使い方
Distinctの使い方について、例を書いていきます。
行いたい処理
重複した要素を排除したい
Linqを使用しない例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
using System; using System.Collections.Generic; using System.Linq; namespace ConsoleApp2 { class Program { static void Main(string[] args) { int[] array1 = new int[] {1,2,3,2,3,4,5,4}; List<int> results = new List<int>(); foreach(var item in array1) { if (!results.Contains(item)) results.Add(item); } foreach(var item in results) { Console.WriteLine(item); } } } } |
result
1
2
3
4
5
重複していない要素のみリストに加え、作成したリスト内の要素を出力しています。
今回の例はある程度考えないといけないかもしれませんね。可読性も低いです。
続けて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) { int[] array1 = new int[] {1,2,3,2,3,4,5,4}; var results = array1.Distinct(); foreach(var item in results) { Console.WriteLine(item); } } } } |
result
1
2
3
4
5
複雑な処理が1行で実現できます。Sqlやっている方なら覚えやすいし、とても便利です。
OrderBy
続けてOrderByの使い方の例を見てみましょう。
行いたい処理
配列の要素を昇順に並べ替えて、出力したい。
Linqを使用しない例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
using System; using System.Collections.Generic; using System.Linq; namespace ConsoleApp2 { class Program { static void Main(string[] args) { int[] array1 = new int[] {3,5,2,1,4}; List<int> resultlist = new List<int>(); resultlist = array1.ToList(); resultlist.Sort(); foreach(var item in resultlist) { Console.WriteLine(item); } } } } |
result
1
2
3
4
5
ListのSort関数を使用しました。ToList()がLinqの関数ですが細かいことは気にしないでください。
配列内で直接ソートしたいときはLinqを使いましょう。
次は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) { int[] array1 = new int[] {3,5,2,1,4}; var results = array1.OrderBy(n => n); foreach(var item in results) { Console.WriteLine(item); } } } } |
result
1
2
3
4
5
Linqだととても簡単に並べ替えが出来ますね。要素の型を複数個持っている場合はThenbyも一緒に覚えることで二つ目以降の並べ替えにも対応できます。
OrderByDescending
ここからはLinqを使用した例のみとさせてください 😥
OrderByDescendingの使い方です。
行いたい処理
配列の要素を降順に並べ替えて、出力したい。
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) { int[] array1 = new int[] {3,5,2,1,4}; var results = array1.OrderByDescending(n => n); foreach(var item in results) { Console.WriteLine(item); } } } } |
result
5
4
3
2
1
降順を実現するのも簡単ですね。OrderByとセットで覚えましょう。
他のLinqの記事についてはこちら
まとめ
今回もLinqメソッドの紹介記事でした。今回の取り上げたメソッドを下記に纏めます。
今回のメソッド一覧
- Distinct
- OrderBy
- OrderByDescending
今回紹介したメソッドは結構使いたい場面が多いので、覚えておきましょう。
配列やリストなどで共通で使えるのも頼もしいですね。
Linqメソッドの紹介もあと少しなので、頑張っていきましょう。
今回の記事は以上です。最後まで見て頂きありがとうございました。
次回の記事です。
CHECK
-
【C# sharp Linq】Repeat、Rangeの要素の初期化方法2選
ChatGPTのAPIを使わずに自動化することが可能です。 下記の本を読めば、ChatGPT4でも料金掛からずに自動化できます!KindleUnlimited会員であれば無料で読めます。 今回のテーマ ...
続きを見る
他のLinqの記事についてはこちら