2017-06-12 227 views
0

我是新手編程,並且在嘗試學習數組時遇到了一些小問題。所以我的想法是我需要打印出數組中的獨特元素。當我運行該程序時,它的打印數量超過了數組中的值。我很抱歉,如果這是一個超級簡單而愚蠢的問題,但我沒有看到它的問題。語言是c#。控制檯打印多次

static void Main(string[] args) 
    { 
     int[] numbers = new int[10]; 
     Random random = new Random(); 

     for (int i = 0; i < 10; i++) 
     { 
      numbers[i] = random.Next(0, 10); 
     } 

     Array.Sort(numbers); 
     foreach (var num in numbers) 
     { 
      Console.Write("{0}, ", num); 
     } 

     Console.WriteLine(""); 

     for (int i = 0; i < 10; i++) 
     { 
      for (int j = 1; j < 10; j++) 
      { 
       if (numbers[i] == numbers[j]) 
       { 
        break; 
       } 
       else 
       { 
        Console.Write(numbers[i] + ", "); 
       } 
      } 
     } 
+0

你想要什麼寫這個計劃,我的朋友是什麼時候? – Tomato32

+0

我只想打印出隨機數組中的獨特元素。例如,如果數組是1,4,6,6,6,3,3,我希望程序輸出1,3,4,6。這個部分只是我可以比較並確保它的工作權利。 – Yummy275

+0

'numbers.Distinct()'不是一個選項? – Maxim

回答

0

我不確定最後的嵌套for循環是如何瘋狂的。但你可以這樣做。

 int[] numbers = new int[10]; 
     Random random = new Random(); 

     for (int i = 0; i < 10; i++) 
     { 
      numbers[i] = random.Next(0, 10); 
     } 

     Array.Sort(numbers); 
     foreach (var num in numbers) 
     { 
      Console.Write("{0}, ", num); 
     } 
     Console.WriteLine(); 
     numbers = numbers.Distinct().ToArray(); 
     numbers.ToList().ForEach(x => Console.Write(x + ", ")); 

另一種選擇是短,我把它降低到4線:

 Random random = new Random(); 
     int[] numbers = Enumerable.Repeat(0, 10).Select(i => random.Next(0, 10)).ToArray(); 
     Console.WriteLine(string.Join(", ", numbers)); 
     Console.WriteLine(string.Join(", ", numbers.Distinct()));