Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- internal class Range
- {
- internal int[] this[int n]
- {
- get { return this[0, n]; }
- }
- internal int[] this[int a, int b]
- {
- get { return this[a, b, 1]; }
- }
- internal int[] this[int a, int b, int step]
- {
- get
- {
- if (a < b && step > 0)
- {
- int len = (b - a + (step - 1)) / step;
- int[] arr = new int[len];
- int val = a;
- for (int i = 0; i < len; i++, val += step)
- {
- arr[i] = val;
- }
- return arr;
- }
- else if (a > b && step < 0)
- {
- int tmp = a;
- a = b;
- b = tmp;
- int abStep = Math.Abs(step);
- int len = (b - a + (abStep - 1)) / abStep;
- int[] arr = new int[len];
- int val = b;
- for (int i = 0; i < len; i++, val += step)
- {
- arr[i] = val;
- }
- return arr;
- }
- else if (a == b && step != 0)
- {
- return new int[0];
- }
- throw new ArgumentException();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement