int 型の長さ 300 の配列があります。ほとんどの要素は 0 で、0 より大きい最初の要素のインデックスを取得したいのですが、どうすればこれを達成できますか。
ありがとうございました
Array.FindIndexを使用して、0 より大きい配列の最初の要素のインデックスを取得できます。
var array = new int[5];
array[0] = 0;
array[1] = 0;
array[2] = 1;
array[3] = 1;
array[4] = 0;
int index = Array.FindIndex(array, x=>x > 0);
または、Array のArray.IndexOfメソッドを使用することもできます。
int index = Array.IndexOf(array, array.First(x=>x > 0));
int count=0;
for(int i=0;i<numbers.Length;i++)
{
if(numbers[i]>0)
{
break;
}
count++;
}
最後に変数 count の値を取得します。これが index になります。
int result;
foreach (int i in array)
if (i > 0)
{
result = i;
break;
}
欲しいのは最初だけなので、見つけたらすぐに壊すことができます。