今回のテーマ
こんばんは、サルモリです。
今回もLinqのSelectメソッドの使い方として、下記のテーマについて書いていきます。
今回のテーマ
リストや配列の要素に対して連番を割り振る方法
今回はSelectメソッドで連番を割り振る方法を書いていきます。
下記の記事でもSelect文について解説しています。良ければ見てください。
CHECK
-
【C# sharp Linq】クラスを定義してSelectメソッドを使おう。
ChatGPTのAPIを使わずに自動化することが可能です。 下記の本を読めば、ChatGPT4でも料金掛からずに自動化できます!KindleUnlimited会員であれば無料で読めます。 今回のテーマ ...
続きを見る
他のLinqの記事についてはこちら
Linqの演習問題はこちら
他の演習問題はこちら
Linqメソッドの解説の流れ
下記の流れで説明したいと思います。
行いたい処理の例を書きます。
Linqを使用するソースコードを書いていきます。
ソースコードには、リストと配列を使います。
Select文を使用して、連番の付ける方法
早速、配列の各要素に対して、連番を割り振ってみましょう!
行いたい処理
String型の配列に連番の属性を付けたい。
配列に連番を割り振ってみる
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
using System; using System.Linq; namespace ConsoleApp3 { class Program { static void Main(string[] args) { String[] array = new string[] { "dog", "cat", "mouse", "lion" }; var array2 = array.Select((x, No) => new { No, x }).ToArray(); foreach(var item in array2) { Console.WriteLine(item); } } } } |
result
{ No = 0, x = dog }
{ No = 1, x = cat }
{ No = 2, x = mouse }
{ No = 3, x = lion }
上記のようにSelect文を使うことで連番を割り振ることが可能です。思ったよりも簡単に出来ますよね。
やり方としてはSelectの引数(右辺)を2つにします。2つ目の引数には自動的に0からの連番が割り振られているので、
その値をそのまま扱うことで実現できます。
この自動的に降られたNoは下記のように自由に取り出して扱う事も可能です。
1 |
Console.WriteLine(item.No); |
リストも同じように出来ます。1からリストを作るのがめんどくさいので、配列をリスト化して実現しています 😥
リストに連番を付けてみる
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 ConsoleApp3 { class Program { static void Main(string[] args) { String[] array = new string[] { "dog", "cat", "mouse", "lion" }; List<string> list = new List<string>(); list = array.ToList(); var list2 = list.Select((x, No) => new { No, x }).ToList(); foreach(var item in list2) { Console.WriteLine(item); } } } } |
result
{ No = 0, x = dog }
{ No = 1, x = cat }
{ No = 2, x = mouse }
{ No = 3, x = lion }
リストでも簡単に実現することができますね。
簡単な応用例
この連番を使う時の簡単な応用例を紹介します。次の事がやりたいとします。
行いたい処理
配列の要素の順番が3の倍数である動物のみ出力したい。
連番を扱う応用例
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 ConsoleApp3 { class Program { static void Main(string[] args) { String[] array = new string[] { "dog", "cat", "mouse", "lion" ,"bear","fox","tiger","pig","camel"}; var list2 = array.Select((Name, No) => new { No, Name }).Where(x => x.No % 3 == 2).Select(x => x.Name); foreach(var item in list2) { Console.WriteLine(item); } } } } |
result
mouse
fox
camel
このような感じで、連番に対して3の倍数の条件を指定し、配列を作ることが出来ます。
まとめ
今回はリストや配列に連番を付ける方法を学びました。
Linqで指定できるからこそ、便利な場面が多いです。
覚えてしまえば、簡単なのでぜひ覚えてください。引数を2つ指定する方法も初めてつかったので、覚えてしまいましょう。
近いうちに引数の指定の仕方などの記事も書いていこうと思っています。
最後まで見て頂きありがとうございました。
配列、リストなどの記事はこちら
他のLinqの記事についてはこちら
Xmlファイルの読み込みにも使用できます。
こちらもCHECK
-
【C# sharp Linq】Xmlファイルの内容をSelectメソッドを使用して保持する方法2選
ChatGPTのAPIを使わずに自動化することが可能です。 下記の本を読めば、ChatGPT4でも料金掛からずに自動化できます!KindleUnlimited会員であれば無料で読めます。 今回のテーマ ...
続きを見る
Linqの演習問題はこちら
他の演習問題はこちら