質問を言葉にするのは難しいですが、たとえば、次のようなものが欲しいとします。
int x = 5;
int z[] = {1,12,22,56};
if ((x==z[0]) || (x==z[1]) || (x==z[2]) || (x==z[3])) {
[self fooOnYou:x]
}
これを行うためのよりクリーンでエレガントな方法はありますか?
質問を言葉にするのは難しいですが、たとえば、次のようなものが欲しいとします。
int x = 5;
int z[] = {1,12,22,56};
if ((x==z[0]) || (x==z[1]) || (x==z[2]) || (x==z[3])) {
[self fooOnYou:x]
}
これを行うためのよりクリーンでエレガントな方法はありますか?
名前空間Contains()
で使用できます。System.Linq
int x = 5;
int[] z = new {1,12,22,56};
if (z.Contains(x))
{
// do your stuff here...
}
C# の答えは次のようになります。
using System.linq;
...
if (z.Any(i => i == x))
{
// Do your stuff here.
}
整数値の配列に整数値が存在するかどうかを調べようとしていると思います。配列がソートされている場合は、二分探索アルゴリズムを使用してその値を見つける必要があります。そうでない場合 (そして並べ替えたくない場合) は、単純な for ループを使用して目的の値を見つけることができます。
int findValue(int value, int array[], int size) {
for (int i = 0; i < size; ++i) {
if (array[i] == value) {
return i;
}
}
return -1;
}
配列をループします。For(int i=0, i のようなもの