今回のテーマ
こんばんは、サルモリです。
下記の記事の続きです。今回もLinqのメソッドを紹介してきます。
CHECK
-
【C# sharp Linq】Repeat、Rangeの要素の初期化方法2選
ChatGPTのAPIを使わずに自動化することが可能です。 下記の本を読めば、ChatGPT4でも料金掛からずに自動化できます!KindleUnlimited会員であれば無料で読めます。 今回のテーマ ...
続きを見る
今回のテーマ
Linqのメソッド、Concat、Aggregateの使い方。
今回は上記の2つのメソッドについて解説します。
他のLinqの記事についてはこちら
Concat、Aggregateについて
Concat
2つのリストや配列を連結します。
Aggregate
全ての要素を指定した引数で加算することができます。
Linqメソッドの解説の流れ
下記の流れで説明したいと思います。
行いたい処理の例を書きます。
Linqを使用しない書き方と使用する書き方のソースコードを書いていきます。
ソースコードには、配列とリストを使います。
Concatの使い方
Concatの使い方について、例を書いていきます。ConcatはLinqの例のみにします。
行いたい処理
2つの配列を連結したい
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[] { 1, 2, 3 }; int[] array2 = new int[] { 1, 2, 3 }; var results = array1.Concat(array2); foreach(var item in results) { Console.WriteLine(item); } } } } |
result
1
2
3
1
2
3
配列が連結されてますね。簡単にできるので、覚えましょう。
Aggregate
続けてAggregateの使い方の例を見てみましょう。Aggregateはint型とString型の例を作成します。
行いたい処理
配列の全ての要素を加算したい。
Linqを使用しない例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
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, 4, 5, 6, 7, 8, 9 ,10}; int sum = 0; for(var i = 0;i < array1.Length; i++) { sum += array1[i]; } Console.WriteLine(sum); } } } |
result
55
基本的なfor文の使い方ですね。
次はLinqを使った例をみてみましょう。
Linqを使用する例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
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, 4, 5, 6, 7, 8, 9 ,10}; var sum = array1.Aggregate((a, b) => a + b); Console.WriteLine(sum); } } } |
result
55
上記のように記述することで配列の要素の加算を行うことができます。このメソッドを扱うときは、2つの引数を指定します。
下記のような処理が行われています。
step
1引数1に1が入る。引数2に2が入る。結果は3
step
2引数1にステップ1の結果が入る。引数2に3が入る。結果は6
step
3引数1にステップ2の結果が入る。引数2に4が入る。結果は10
上記の処理を配列の要素分行われます。
この処理の流れを頭に入れた上で、String型の場合も見てみましょう。Linqの例のみです 😥
行いたい処理
配列の全ての要素をandで連結したい。
Linqを使用する例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
using System; using System.Collections.Generic; using System.Linq; namespace ConsoleApp2 { class Program { static void Main(string[] args) { string[] array1 = new string[] {"dog","cat","mouse"}; var sum = array1.Aggregate((a, b) => a + " and " + b); Console.WriteLine(sum); } } } |
result
dog and cat and mouse
上記のように各要素を指定した文字列で連結させることができます。下記の処理が行われています。
step
1引数1にdogが入る。引数2にcatが入る。結果はdog and cat
step
2引数1にdog and cat。引数2にmouseが入る。結果はdog and cat and mouse
他のLinqの記事についてはこちら
まとめ
今回もLinqメソッドの紹介記事でした。今回の取り上げたメソッドを下記に纏めます。
今回のメソッド一覧
- Concat
- Aggregate
今回はConcatとAggregateについて解説しました。
あまり使う場面がないかもしれませんが、覚えておいて損はないと思います。
AggregateのString型の使い方はJoinでも可能ですが、個人的にAggregateのほうが好きだったりします。
この辺に関しては、好みの問題となりますので、どちらを使ってもいいと思います。
今回の記事は以上です。最後まで見て頂きありがとうございました。
次回の記事です。
CHECK
他のLinqの記事についてはこちら