if((threshold >= 0 && x > threshold) || (threshold < 0 && x < threshold)) { .... }
値が不変のはずのthresholdの符号をループで毎回評価する無駄が許せないなら Func<int, bool> predicate = x => x > threshold; if (threshold < 0) predicate = x => x < thredhold; .... if (predicate(x)) { .... }