2016-07-26 6 views
-12

配列を参照するときは0から始まりますが、array.lengthは0から始まるか、1から始まるのですか?C#はarray.lengthを0から開始しますか?

配列のサイズを10に指定すると、0-9が参照されるため、array.lengthの意味は0-9ですか?

私はランダムに生成された数の最大サイズとしてArray.lengthと使用していますので、求めているが、私はここでは、この

randomArrayPointer = randomIntNum(0 , (posPercents.Length - 1)); //generates a random number that fits the arrays range 
if(randomArrayPointer < posPercents.Length) //ensures the integer is less than the length of the array 
{ 
    return (posPercents [ randomArrayPointer ]); 
} 
else 
{ 
    return (posPercents [ 0 ]); 
} 

ようにそれをやっているが、私の方法randomIntNumber(I +1にありますランダム()の入力として1〜10を指定する際の最大は、それは私に0-9間の数)を与えるため

public static int randomIntNum(int min , int max) 
{ 
    if(max != 1 & (max != (min + 1))) //if max isn't 1 and max isn't the minimum + 1 
    { 
     max = max - 1; //remove 1, this corrects the random generator so that the parameters sent don't need adjusting 
    } 
    int newInt; 
    newInt = rnd.Next(min , max); 
    return (newInt); 
} 

編集:

これは私の方法です、みなさんありがとうございます。

public static double randomPercentChange(Boolean? positive) 
    { 
     if(positive == true) 
     { 
      return (posPercents [ rnd.Next(posPercents.Length) ]); 
     } 
     else if(positive == false) 
     { 
      return (negPercents [ rnd.Next(negPercents.Length) ]); 
     } 
     else if(positive == null) 
     { 
      return (1); 
     } 
     return 1; 
    } 
+4

"これはarray.lengthの意味が0-9ですか?"その質問は意味をなさない。長さは単なる値で、あなたの場合は10になります。 –

+1

インデックスの有効範囲は何ですか?答えは '0 .. array.Length - 1'です。しかし、 'Length'は配列を初期化した負の値ではありません。 –

+0

SO .... MUCH .... SPACING ...余分な空きスペースを取り除いてください。 CTRL + K + D! – MichaelThePotato

答えて

0

Array.Lengthは配列のサイズ、つまり保持できる要素の数を表します。配列は0あなたの配列が空の場合、それは0の要素が含まれており、配列は1つの要素を持っている場合は長さ0

を持って

for(var i = 0; i < myArray.Length; i++) 
{ 
    var elm = myArray[i]; 
    //do something with the element 
} 
3

...それらのインデックスを作成する際に、その例の反復は次のようになります基づいています0インデックスに、その長さは、アレイが0と1のインデックスに2つの要素を有する場合、その長さが等しい2

あるなど...

+0

これは私が知りたかったことです、ありがとう! – PeterT

+3

@MKasprzyk - 回答を受理しても問題は解決しません。 –

+0

@MKasprzykまず、答えを受け入れるように頼んではいけません。第二に、彼はあなたの答えをまだ受け入れることができません。 –

-1

に等しいです。 210私はあなたの質問は、 "なぜの代わりにposPercents.Length - 1というインデックスの配列の最後の値がありますか?

配列はゼロベースであるため、posPercents.Length = 10ですが、最後の値はインデックス10にありません。それはインデックス9にあるので、そのインデックスはposPercents.Length - 1です。

関連する問題