特定の範囲に属する数値の関数で値を割り当てるエレガントな方法を探しています。
たとえば、数値が X の場合、 は次のelegant way
ように返します。
- 'a' - X が 0 ~ 1000 の場合
- 'b' - X が 1000 ~ 1500 の場合
- など(ただし、定義された間隔の固定数)
エレガントとは、より魅力的なものを意味します
if ((x => interval_1) && (x < interval_2))
class_of_x = 'a';
else if ((x => interval_2) && (x < interval_3))
class_of_x = 'b';
...
また
if(Enumerable.Range(interval_1, interval_2).Contains(x))
class_of_x = 'a';
else if(Enumerable.Range(interval_2 + 1, interval_3).Contains(x))
class_of_x = 'b';
...
たくさんの IF を見るのは嫌いです。また、interval_1、interval_2 などのように、interval 値をコレクションに保存することもできます (これは IS をなくすのに役立つのではないでしょうか?)。
この質問にいくらか触発されました 数値が範囲内にあるかどうかをエレガントにチェックする方法は? 上記の問題の解決策を探しているときに出てきたものです。