What about SortedDictionary:
http://msdn.microsoft.com/en-us/library/f7fta44c.aspx[
^].
On the other hand if the instance of your class contains the ordinal, you could use basically any generic collection and before serializing pull out the items in sorted order for example using LINQ, something like (depending on the collection type):
var orderedlist = from item in myDict
order by item.Ordinal
select item;