2 回答

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超8個(gè)贊
沒有什么比第二種選擇更有效的了。你可以寫一個(gè)擴(kuò)展:
public static class NumberExtensions
{
public static bool IsWithinRange<T>(this T number, T rangeStart, T rangeEnd) where T : IComparable<T>
{
return number.CompareTo(rangeStart) >= 0 && number.CompareTo(rangeEnd) <= 0;
}
}
現(xiàn)在代碼可讀且高效:
if (x.IsWithinRange(1, 100))
{
}

TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超9個(gè)贊
第一個(gè)(LINQ)選項(xiàng)非常低效。第二個(gè)選項(xiàng)(只需檢查不等式運(yùn)算符)就可以了。在有多個(gè)范圍的一般情況下,您可以使用新的switch改進(jìn):
switch(number)
{
case var n when n >= 1 && n <= 100:
// ...
break;
case var n when n > 100:
// ...
break;
default:
// ...
break;
}
- 2 回答
- 0 關(guān)注
- 147 瀏覽
添加回答
舉報(bào)