2016-08-12 1 views
1

Ich bin neu in C# und ich möchte, dass meine Sammlung von List<Tuple<int, string, int>>C#-Gruppe und dann sortieren Liste der Tupel <T1,T2,T3>

Der Benutzer gibt Daten zum Beispiel sortieren:

T1 T2 T3 
1 abbc 3    
1 becky 5   
1 betty 56   
2 Olivia 6    
2 abbc 3    
2 becky 5   
3 Olivia 675 

ich die Art möchte Liste aussehen wie;

ID = 1 { abbc,3|becky,5|betty,56 }   
ID = 2 { Olivia,6|abbc,3|becky,5 }   
ID = 3 { Olivia,675 } 

bitte helfen ich wirklich bin stecken :)

+0

Sie können erstellen eine Klasse, die von List > erbt und ISortable implementiert. Auf diese Weise können Sie die Sort-Methode für Ihre neue Klasse aufrufen. –

+3

Mögliches Duplikat von [C# tuple list multiple sort] (http://stackoverflow.com/questions/23991802/c-sharp-tuple-list-multiple-sort) –

+0

Ein Auf welcher Grundlage sortieren Sie? –

Antwort

2

Es sieht eher aus wie Sie Ihre Artikel Group wollen und dann Order durch die erste int (Id):

List<Tuple<int, string, int>> data = new List<Tuple<int, string, int>> 
{ 
    new Tuple<int, string, int>(1,"abbc",3), 
    new Tuple<int, string, int>(1,"becky",5), 
    new Tuple<int, string, int>(1,"betty",56), 
    new Tuple<int, string, int>(2,"Olivia",6), 
    new Tuple<int, string, int>(2,"abbc",3), 
    new Tuple<int, string, int>(2,"becky",5), 
    new Tuple<int, string, int>(3,"Olivia",675), 
}; 

var result = data.GroupBy(item => item.Item1) 
       .Select(group => new { Id = group.Key, Values = group.Select(item => new { item.Item2, item.Item3 }).ToList() }) 
       .OrderBy(item => item.Id).ToList(); 
+1

@helpme - Hat Ihnen dies geholfen? –

+0

lol, ich kann nicht für OP sagen, aber Sie haben meinen Tag mit dem obigen Kommentar gemacht :) –

+0

@IvanStoev - hahaha ya! brachte mich zum Lachen, P –

Verwandte Themen