こんにちは。たいら(@tairaengineer2)です。
この記事では、C#でLINQのRangeメソッドについて解説します。
スポンサーリンク
前提条件
この記事では、Visual Studio 2017 Communityを使っています。
インストールの仕方は、下の記事をご参考ください。
Rangeメソッドとは
Rangeメソッドとは、引数で指定された数から連続した数の分だけのシーケンスを作ることができるメソッドです。
Enumerable.Range(Int32, Int32) メソッド
指定した範囲内の整数のシーケンスを生成します。
Enumerable.Range(Int32, Int32) メソッド (System.Linq) | Microsoft Docsから引用させて頂きました
定義は以下です。
public static System.Collections.Generic.IEnumerable<int> Range (int start, int count);
このメソッドはusingは
using System.Linq;
を使います。
Rangeメソッドの使い方は以下になります。
IEnumerable<int> sampleRange = Enumerable.Range(0, 5);
それぞれの意味は、以下です。
第二引数のシーケンスを取得する数(上記の例だと、5の部分)には0以上の数字を入れる必要があります。
なぜならマイナスの数値を入力すると、ArgumentOutOfRangeExceptionという例外が発生するからです。
では、次の章でRangeメソッドを使ってみます。
解説で使うC#プログラムの概要
以下2つのパターンでRangeメソッドを使います。
- 0を始点として9個分のシーケンスを作成
- 30を始点として4個分のシーケンスを作成
それぞれのシーケンスをリストにして、リストの中身をコンソールに表示させます。
コンソールプロジェクトを作成するやり方は下の記事をご参考ください。
プログラムを作成したあと、ビルドをするやり方はこちらの記事をご参考ください。
C#サンプルコード
using System;
using System.Collections.Generic;
using System.Linq;
namespace ConsoleApp1
{
/// <summary>
/// Rangeメソッドサンプル
/// </summary>
class Program
{
/// <summary>
/// メイン
/// </summary>
/// <param name="args"></param>
static void Main(string[] args)
{
// 0を始点として9個分のシーケンスを作成し、コンソールに表示する
Console.WriteLine("■0を始点として9個分のシーケンスを作成");
IEnumerable<int> rangeList1 = Enumerable.Range(0, 10);
rangeList1.ToList().ForEach(number => Console.WriteLine(number));
// 30を始点として4個分のシーケンスを作成し、コンソールに表示する
Console.WriteLine("■30を始点として4個分のシーケンスを作成");
IEnumerable<int> rangeList2 = Enumerable.Range(30, 4);
rangeList2.ToList().ForEach(number => Console.WriteLine(number));
}
}
}
リスト化しているToListメソッドについては、こちらの記事をご参考ください。
ForEachメソッドについては、こちらの記事をご参考ください。
実行結果
■0を始点として9個分のシーケンスを作成
0
1
2
3
4
5
6
7
8
9
■30を始点として4個分のシーケンスを作成
30
31
32
33
続行するには何かキーを押してください . . .
指定した通りのシーケンスを取得して表示することができました!
スポンサーリンク
まとめ:Rangeメソッドを使ってみよう!
以上が指定した範囲内のシーケンスを取得できるRangeメソッドの解説です。
まとめなので、もう1度Rangeメソッドの使い方を載せておきます。
Rangeメソッドは、連続した数字のリストを作るときにとても便利なので、ぜひ使ってみてください!
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
ほかにもC#解説記事を書いてます。
よければご参考ください。
【C#】【LINQ】Aggregateメソッドの使い方を解説します
今までブログで解説したC#の解説まとめ記事はこちらをご参考ください。