c#如何按值列对排序列表进行排序

Gra*_*ant 8 c# sorting sortedlist

我有一个通用的排序列表"结果"与key = some filename和value = boolean.

我想通过布尔条目或值列对列表进行排序.有谁知道我怎么做到这一点?

谢谢!

spe*_*der 10

SortedList经过优化,以便以有序的方式发生惯性,这样枚举以最低成本按排序顺序发生.其他任何东西都需要重新排序.从而:

        SortedList<string,bool> l=new SortedList<string, bool>();
        l.Add("a",true);
        l.Add("a",false);
        l.Add("b",true);
        l.Add("b",false);
        var orderByVal=l.OrderBy(kvp => kvp.Value);
Run Code Online (Sandbox Code Playgroud)

但是这个枚举的计算速度要慢得多,并且可以预先执行,需要额外的存储才能完成.

根据您的情况,维护2个SortedList实例并使键/值反转可能更便宜.

  • 您不能两次将相同的元素添加到列表中。抛出异常 (2认同)