maqeMedlem sedan dec. 2003824 inlägg Jag har en sorteddictionary som jag vill sortera men får inte riktigt till det.
Såhär ser min sorted dictionary ut
new SortedDictionary<string, PropertyDefinition>();
PropertyDefinition har en property "SortOrder" som är en int och på den skulle jag vilja sortera listan, gärna på keyn som andra val om det går? Någon som vet hur man gör detta?
emissionMedlem sedan dec. 19996 721 inlägg SortedDictionary kan bara sortera på nyckelvärdet. Du får spola över värdena i en List<T> och använda Sort på den.
Dessutom måste du låta PropertyDefinition implementera IComparable
class PropertyDefinition : IComparable
{
//Din klass
public int CompareTo(object obj) {
if(obj is PropertyDefinition)
{
PropertyDefinition def = (PropertyDefinition) obj;
int result=this.SortOrder.CompareTo(def.SortOrder);
//Antog att nyckelvärdet även fanns på klassen, med t.ex. namnet "Id"
if (result==0)
return this.Id.CompareTo(def.Id);
return result;
}
throw new ArgumentException("object is not a PropertyDefinition");
}
}
..eller skapa en motsvarande IComparer
maqeMedlem sedan dec. 2003824 inlägg Ah okay, inte konstigt att jag inte lyckades sortera på något annat än keyn då :)
Tack för hjälpen