class Foo
{
public static IEnumerable<int> Range(int start, int end)
{
return Enumerable.Range(start, end);
}
public static void PrintRange(IEnumerable<int> r)
{
foreach (var item in r)
{
Console.Write(" {0} ", item);
}
Console.WriteLine();
}
}
class Program
{
static void TestFoo()
{
Foo.PrintRange(Foo.Range(10, 20));
}
static void Main()
{
TestFoo();
}
}
Expected Output:
10 11 12 13 14 15 16 17 18 19 20
Actual Output:
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
What is the problem with this code? Whats happening?
The second parameter of Enumerable.Range
specifies the number of integers to generate, not the last integer in the range.
If necessary, it's easy enough to build your own method, or update your existing Foo.Range
method, to generate a range from start
and end
parameters.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With