επιστημηさんの「こんなのもあっていいかなーと」に触発されてみた [プログラム]
元記事:こんなのもあっていいかなーと
個人的には,initialに対しての拡張メソッドにしたいかな,というわけで作ってみました。
using System; using System.Collections.Generic; namespace Yuo.Extensions { public static class SystemExtensions { // 初項:initial 公差:stride の等差数列 public static IEnumerable<int> MySequence (this int initial, int stride) { for (; ; ) { yield return initial; initial += stride; } } // initialから1刻み public static IEnumerable<int> MySequence (this int initial) { return initial.MySequence(1); } } }
項数はTake 拡張メソッドに丸投げしたので,引数が減っています。 また0からcount - 1までは,Enumerable.Range メソッドでできるので作っていません。
比較用。
using System; using System.Collections.Generic; using System.Linq; using Wankuma.Extensions; using Yuo.Extensions; public class Program { public static void Main () { // 初項2, 公差3 で 5つ。 var seq = 5.Sequence(2, 3); var seq2 = 2.MySequence(3).Take(5); Console.WriteLine(seq.SequenceEqual(seq2)); // 比較 // 要素数10コ、ぜんぶ-1で埋める var array = new List(10.Sequence(-1, 0)); var array2 = new List ((-1).MySequence(0).Take(10)); Console.WriteLine(array.SequenceEqual(array2)); // 比較 } }
結果
True True
2009-09-03 00:10
コメント(0)
トラックバック(0)
コメント 0