153. Enumerable Range

לפעמים אנחנו מעוניינים לקבל תחום מסוים של מספרים כאוסף ולעשות עליו כל מיני פעולות.

הדרך הקלאסית לעשות זאת היא כך:

1
2
3
4
5
6
7
8
9
10
11
public static IEnumerable<int> Range(int from, int to)
{
List<int> numbers = new List<int>();
for (int i = from; i <= to; i++)
{
numbers.Add(i);
}
return numbers;
}

גם לפונקציה זו יש מקבילה LINQית בשם Enumerable.Range. אלא שהיא מקבלת איבר ראשון ומספר איברים:

נוכל לממש את הפונקציה שלנו בעזרתה כך:

1
2
3
4
public static IEnumerable<int> Range(int from, int to)
{
return Enumerable.Range(from, to - from + 1);
}

לדוגמה, נניח ואנחנו מעוניינים לאתחל מערך ב108 מספרים הראשונים אחרי 1000, נוכל לעשות זאת כך:

1
2
int[] aLotOfNumbers =
Enumerable.Range(1000, 108).ToArray();

זה יוצר לנו מערך בגודל 108 עם כל המספרים הטבעיים בין 1000 ל1107 (כולל הקצוות)

שיהיה המשך יום עם טווח קצר

שתף