سلام... کلاس SimpleStateMachine (برخلاف نامش) Simple نیست و حتی Error-Prone هستش. اگر کلاس رو بدین شکل در نظر بگیریم:
در این صورت میتونیم با استفاده از Range همون کار رو انجام بدیم:
public class ReallySimple<T> : IEnumerable<T> { //blah blah blah... }
Enumerable.Range(1, 20).Select(r => new ReallySimple()).ToList().ForEach(x => Console.WriteLine(x));