2017-12-01 5 views
0

Ich habe eine Liste von int in C#, ich möchte sie in einzigartigen Elementen gruppieren.Wie mache ich eine Gruppe von einzigartigen Element von n Element in C#

List<int> items = new List<int>() { 1, 3, 1, 2 }; 

Wie Sie sehen können, hat es 4 Element 1,3,1,2. Ich möchte sie in Größe von 2 gruppieren. Zum Beispiel

[1,3],[1,2] 
[1,1],[3,2] 

Wie Sie sehen können, ist es diese einzigartige Gruppe. Ich bin nicht sicher, wie man das in C# erreicht. In diesem Fall muss ich nach 2 gruppieren, aber vielleicht muss ich nach einer anderen Nummer gruppieren (N).

Die Liste kann mehr Artikel enthält als 4.

+1

Sie wollen Kombinationen ohne Wiederholungen? –

+0

Was ist mit '[2,3]'? – DavidG

+0

@DavidG wenn Sie [2,3] nur [1,1] gruppieren, bleibt übrig. Es spielt keine Rolle, wer zuerst in der Gruppe kommt, also ist [2,3] dasselbe wie [3,2] – Adrian

Antwort

0

Genau dies ausprobieren, ich habe das Ergebnis zur Liste geladen.

List<int> numbers = new List<int>() { 1,2,3,4,5,6}; 
      List<int[]> numArrays = new List<int[]>(); 

      var numArray = numbers.ToArray(); 
      for(int i = 0; i < numArray.Length; i++) 
      { 
       for(int j = i ; j < numArray.Length; j++) 
       { 
        int[] nums = new int[2]; 
        nums[0] = numArray[i]; 
        nums[1] = numArray[j]; 
        numArrays.Add(nums); 
       } 
      } 
+0

, wenn Sie 6 Artikel in Liste, das Unterfeld wird 3 in einem einzigen T (von 2 Elementen pro Element), überprüfen Sie bitte. – Adrian

Verwandte Themen