Sorting a SortedDictionary based on value, not key

后端 未结 4 602
猫巷女王i
猫巷女王i 2021-01-18 18:11

I have a SortedDictionary, the key is a int value and the matching value to each key is a class object. The class contains a int and a two datetime variable.

I need

4条回答
  •  梦谈多话
    2021-01-18 19:16

    Sorted Dictionary will always sort on the key, so there is no way to re-arrange it's data so they are sorted on anything other that the key. What you can do is get the data into another structure (some kind of IOrderedEnumerable) where they can be sorted on things other that the key.

    If you want to discard the keys and just get the values then

    var sortedValues = dictionary.Values.OrderBy(busDetail => busDetail.InTime);
    

    will work, and the type of sortedValues will be IOrderedEnumerable. If you still need to keep both the keys and values, you could do:

    var sortedElements = dictionary.OrderBy(kvp => kvp.Value.InTime);
    

    which will return a IOrderedEnumerable>. You can that foreach on any of these two collections, or you could bind them to a grid's datasource.

提交回复
热议问题