2016-04-05 7 views
0

データを埋めるループのサイズを有するインデックスのアレイを作成すると、この場合これは これで問題を有する方法イムある

 static void FindDuplicates(int maxValue, int[]totalOfScores) { 
      int finalWinner = 0; 
      int i = 0; 
      int[] WinnerIndex = new int [totalOfScores.Length]; 


      for (int g = 0; g < totalOfScores.Length; g++) { 
       if (totalOfScores[g] == maxValue) 
        for (i = 0; i < WinnerIndex.Length; i++) { 
         WinnerIndex[i] = g; 
         finalWinner = WinnerIndex[i]; 
         Console.WriteLine("\n\nThe Highest Scoring comp was comp Number {0} With a total score of {1}", finalWinner + 1, maxValue); 
        } 

      } 

     } 
+0

私は知っておく必要があります:あなたはなぜLINQを使用できませんか?私は正当な理由は考えられません。 –

+0

@SideriteZackwehdexだから、あなたはLINQなしでそれを解決する方法を知らないのですか? – diam

+0

通常、不確定な数の項目を使用する場合は、リストを使用します。リストは、作成した配列が本当に必要な場合はToArrayメソッドもあります。私は、LINQがこのような状況を解決するだけでなく、より説明的であることもわかります。あなたはそれを読んでその背後にある意図を理解することができます。そしてそれは.NETフレームワークの一部であるため、LINQに対する制限がどこから来るのかを本当に知りたいです。 –

答えて

0

の問題を有するコードIMある isssues有するコードでありますあなたの質問は、ダイナミック配列のサイズではなく、代わりにリストを使用して配列を使用しないでください。または、Array.Resize()を使用します。しかし、私があなたの目標を正しく理解していれば、最高得点を持つすべての競技者をリストアップしようとしています。この例では、競技者3と4では、代わりに行います。

static void FindDuplicates(int maxValue, int[] totalOfScores){ 
    for (int i = 0; i < totalOfScores.Length; i++) { 
     if (totalOfScores[i] == maxValue){ 
      Console.WriteLine("\n\nThe Highest Scoring comp was comp Number {0} With a total score of {1}", i+1, maxValue); 
     } 
    } 
} 

ちなみに、私はFindAllWinnersとしてFindDuplicates名前を変更します(または、私はあなたの意図を誤解しています)。

関連する問題