Ответ 1
Вы можете использовать Enumerable.Range(0, 10);
. Пример:
var seq = Enumerable.Range(0, 10);
Страница MSDN здесь.
F # имеет последовательности, которые позволяют создавать последовательности:
seq { 0 .. 10 }
Создать последовательность чисел от 0 до 10.
Есть ли что-то подобное в С#?
Вы можете использовать Enumerable.Range(0, 10);
. Пример:
var seq = Enumerable.Range(0, 10);
Страница MSDN здесь.
Enumerable.Range(0, 11);
Создает последовательность целых чисел в пределах заданного диапазона.
http://msdn.microsoft.com/en-us/library/system.linq.enumerable.range.aspx
Вы можете создать простую функцию. Это будет работать для более сложной последовательности. В противном случае следует выполнить Enumerable.Range
.
IEnumerable<int> Sequence(int n1, int n2)
{
while (n1 <= n2)
{
yield return n1++;
}
}
Моя реализация:
private static IEnumerable<int> Sequence(int start, int end)
{
switch (Math.Sign(end - start))
{
case -1:
while (start >= end)
{
yield return start--;
}
break;
case 1:
while (start <= end)
{
yield return start++;
}
break;
default:
yield break;
}
}