看看我的代码。无论起始值是0,为什么Enumerable.Range()的行为都不同。
class Program
{
static void Main(string[] args)
{
var range1 = Enumerable.Range(0, 7);
PrintRange(range1);
var range2 = Enumerable.Range(1, 8);
PrintRange(range2);
Console.ReadKey(true);
}
private static void PrintRange(IEnumerable<int> myRange)
{
foreach (int i in myRange)
{
Console.WriteLine("Linha {0}\n", i);
}
Console.WriteLine("\n========================================\n");
}
}
范围本身是一样的。但是当它从1开始时,我得到一个更大的。 :( 结果如下:
Linha 0
Linha 1
Linha 2
Linha 3
Linha 4
Linha 5
Linha 6
========================================
Linha 1
Linha 2
Linha 3
Linha 4
Linha 5
Linha 6
Linha 7
Linha 8
========================================
答案 0 :(得分:8)
答案 1 :(得分:2)
public static IEnumerable<int> Range(
int start,
int count
)
第二个参数(count
)表示:要生成多少个值。它不像起始值和结束值,而是起始数和值的数量,因此:
// generate 7 integers starting from 0
Enumerable.Range(0, 7)
// generate 8 integers starting from 1
Enumerable.Range(1, 8)