2

a in [1, 2, 3]C#の python に相当するものはありますか?

私は試してみましたnew int[]{1, 2, 3}.Contains(a)- これはもっと醜いですが、同じことをします。

もちろん、私もそうすることができます(a==1 || a==2 || a==3)が、変数と名前空間が異なると、これも少しぎこちなくなります。

4

1 に答える 1

7

これをそこに捨てるだけで、完全にテストされていません。

public static bool In(this object obj, params object[] items)
{
    return items.Any(o => o.Equals(obj));
}

拡張メソッドはあなたが探しているものであり、実際の比較チェックをニーズに合わせて微調整するだけだと思います。オブジェクトを使用したので、何でも動作しますが、必要に応じてより具体的にすることができます。

次のように呼び出します。

if (4.In(1,2,3,4))
{
    // Do something
}

これを変更して IEnumerable を取得することもできますが、既に IEnumerable がある場合は、コレクションで .Contains() または .Any() を呼び出すだけでよいでしょう。

于 2013-05-22T02:41:17.180 に答える