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