a in [1, 2, 3]
C#の python に相当するものはありますか?
私は試してみましたnew int[]{1, 2, 3}.Contains(a)
- これはもっと醜いですが、同じことをします。
もちろん、私もそうすることができます(a==1 || a==2 || a==3)
が、変数と名前空間が異なると、これも少しぎこちなくなります。
これをそこに捨てるだけで、完全にテストされていません。
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() を呼び出すだけでよいでしょう。