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