Can I compress an if statement using linq in C#?

前端 未结 6 768
野的像风
野的像风 2021-01-20 01:08

In sql, I can make an if statement like the following If MY_STATE in (1,2,3,4)

In C# I have to type if(MY_STATE == STATE.CT || MY_STATE == STATE.MA || MY_STATE == ST

6条回答
  •  予麋鹿
    予麋鹿 (楼主)
    2021-01-20 01:19

    You could write your own extension method to do that:

    static bool IsOneOf(this T value, params T[] set)
    {
        return set.Contains(value);
    }
    

    Usage: MY_STATE.IsOneOf(STATE_A, STATE_B, STATE_C)

    (It's slower at runtime, though. It has to create a temporary array and all parameters to IsOneOf have to be evaluated)

提交回复
热议问题