1. ホーム
  2. c#

[解決済み] C#のIN演算子はありますか?

2022-12-06 18:29:07

質問

SQLでは、以下のような構文が使用できます。

SELECT *
FROM MY_TABLE
WHERE VALUE_1 IN (1, 2, 3)

C#で同等のものはあるのでしょうか? IDEは"in"をキーワードとして認識しているようですが、それに関する情報を見つけることができないようです。

ということは、以下のようなことは可能なのでしょうか。

int myValue = 1;
if (myValue in (1, 2, 3))
    // Do something

の代わりに

int myValue = 1;
if (myValue == 1 || myValue == 2 || myValue == 3)
    // Do something

どのように解決するのですか?

.Inと書きたいのであれば、それができる拡張子を作ればいいのです。

static class Extensions
{

    public static bool In<T>(this T item, params T[] items)
    {
        if (items == null)
            throw new ArgumentNullException("items");

        return items.Contains(item);
    }

}


class Program
{

    static void Main()
    {


        int myValue = 1;

        if (myValue.In(1, 2, 3))
            // Do Somthing...

        string ds = "Bob";

        if (ds.In("andy", "joel", "matt")) 
        // Do Someting...
    }
}