I am trying to generate numbers like this:
GetAllNumbersFrom(1, Equality.GreaterThan, 100, ",", 10)
would generate
1, 11, 21, 31, 41, 51, 61, 71, 81, 91,
The function that wrote is similar to this:
public static List<string> GetAllNumbersFrom(int i, Equality equality, int limit, string appendBy, int incrementBy = 5)
{
var greaterThanGivenOrEqualTo = new List<string>();
var smallerThanGivenOrEqualTo = new List<string>();
if (equality == Equality.GreaterThanOrEqualTo)
{
for (var count = i; count <= limit; count = count + incrementBy)
{
greaterThanGivenOrEqualTo.Add(count + appendBy);
}
}
else if (equality == Equality.LesserThanOrEqualTo)
{
for (var count = i; count >= limit; count = count - incrementBy)
{
smallerThanGivenOrEqualTo.Add(count + appendBy);
}
}
else if (equality == Equality.GreaterThan)
{
for (var count = i; count < limit; count = count + incrementBy)
{
greaterThanGivenOrEqualTo.Add(count + appendBy);
}
}
else
{
for (var count = i; count > limit; count = count - incrementBy)
{
smallerThanGivenOrEqualTo.Add(count + appendBy);
}
}
return equality == Equality.GreaterThanOrEqualTo
? greaterThanGivenOrEqualTo
: equality == Equality.GreaterThan
? greaterThanGivenOrEqualTo
: smallerThanGivenOrEqualTo;
}
But, I am sure that there must be a simpler version than I wrote. A 5 - 10 liner optimal function may be ? with out all the clumsy if loops ?