public static IEnumerable<int> DownTo(this int self, int limit) { for (int i = self; i >= limit; i--) yield return i; }