Listに数値の並びを初期化するには

数値の並びのデータを作る方法を考える。たとえば、1から100までの整数値のリストを作るにはどうすればよいか。



個数がすくない場合、たとえば1から5までの数値列なら初期値を指定すればよい。


List<int> lst1 = new List<int>() { 1, 2, 3, 4, 5 };

List<int> lst2 = new List<int> { 1, 2, 3, 4, 5 };

これが、1から100までと個数が増えるとさすがに初期値を書くのは大変なので、ループで書くことになる。

List<int> lst3 = new List<int>();
for (int i = 1; i <= 100; i++)
{
    lst3.Add(i);
}

これはこれでよいのだけど、ループをつかわずに、もっとシンプルに書きたいと思うのだけど、よい方法が思いつかない。



検索してみると、Enumerable.Range メソッドを見つけた。これがまさしく上の思いを満たしてくれる。

List<int> lst4 = Enumerable.Range(1, 100).ToList<int>();

うん、これは便利。
(2018/8/1)
今更気がついたのだが、Rangeメソッドの引数は開始と終了ではなく、開始と個数なのだった。

たとえば、5から10までの並びが欲しいときは、Enumerable.Range(5, 10)ではなく、Enumerable.Range(5, 6)と書く。

コメント

このブログの人気の投稿

varchar をデータ型 numeric に変換中に、算術オーバーフロー エラーが発生しました。