SortedList由Key以外的东西索引

Rag*_*ock 7 c#

我想要一个ID的索引列表,按我班级中的特殊属性排序.

SortedList,不这样做,因为它迫使我按键排序......

让我们说我的课就是

class example{
 int Id;
 int Order
}
Run Code Online (Sandbox Code Playgroud)

是否有任何结构像字典一样被索引,并由其他东西排序?

这样我就可以通过ID访问数据,但是在foreach中,数据按Order排序

InB*_*een 2

据我所知,没有任何Dictionary类型对象可以立即提供这种行为。

如果您只担心在foreach循环中按指定顺序访问那么为什么不使用呢LINQ

SortedList<int, example> sortedList = new SortedList<int, example>();
... //populate list

var sortedByOrder = from kp in sortedList
                    orderby kp.Value.Order
                    select kp;

foreach (var kp in sortedByOrder)
{
    ... //access will be ordered by example.Order
}
Run Code Online (Sandbox Code Playgroud)

是的,你会付出性能上的代价,但如果这不是问题,恕我直言,这是获得你想要的东西的最简单方法。