Multiple sort
Jeg har f.eks følgende objekt:class Test
{
int Index;
IndexOrigin Origin;
}
Og følgende enum:
enum IndexOrigin
{
Normal,
Before,
After
}
Jeg vil så gerne sortere Test objektet i en List<> efter Index OG Origin. Jeg har brug for at indsætte et Test objekt ind i listen og så rekalkulere alle indexes så de er fortløbende. Men da jeg indsætter midt i listen, vil to objekter jo have samme index og jeg kan så ikke altid være sikker på at de bliver rekalkuleret i den rigtige rækkefølge. Derfor, når jeg indsætter, sætter jeg Origin property for at indikere om den skal være før eller efter det oprindelige index.
Så hvis det ligger sådan i listen:
21
22 (After) (ny)
22 (Normal)
23
Så vil se sådan ud efter sortering:
21
22 (Normal)
23 (After) (ny)
24
Origin er Normal, hvis den ikke lige er blevet indsat og enten Before eller After hvis den lige er. Jeg kan indsætte et objekt enten før eller efter et bestemt index og alt skal så rekalkuleres efterfølgende så alle indexes passer.
Jeg skal altså blot have sortet listen først efter Index og så efter Origin. Giver det mening?