私はこのような数字を生成しようとしています:
GetAllNumbersFrom(1, Equality.GreaterThan, 100, ",", 10)
生成します
1, 11, 21, 31, 41, 51, 61, 71, 81, 91,
書き込んだ関数は次のようになります。
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;
}
しかし、私が書いたものよりも簡単なバージョンがあるに違いないと確信しています。5 ~ 10 のライナーの最適な機能は ? 不器用な if ループはありませんか?