在IList <T>中订购商品

Bob*_*bby 3 c# generics list

我有一份清单

IList<IRule> allRules = new List<IRule>()
Run Code Online (Sandbox Code Playgroud)

在该列表中,我继续并随机添加不同类型的规则,即

allRules.add(DeleteRule1)
allRules.add(AddRule1)
allRules.add(DeleteRule2) 
allRules.add(EditRule1)
allRules.add(AddRule2)
allRules.add(DeleteRule3)
Run Code Online (Sandbox Code Playgroud)

所有这一切工作正常,我想弄清楚的是,我需要这个列表进行排序,所以它首先有所有的AddRules然后EditRules,最后是DeleteRules.

任何人都可以指定我可以采取的方法吗?

如果这没有意义,请告诉我,我会尝试更详细地解释.

非常感谢

dtb*_*dtb 5

似乎没有一种内置的方法来排序IList <T>.

选项1:将变量声明为List <T>类型,并使用List <T> .Sort方法.

List<IRule> allRules = new List<IRule>();
allRules.add(DeleteRule);
...
allRules.Sort();
Run Code Online (Sandbox Code Playgroud)

选项2:使用订购的新列表替换列表.

IList<IRule> allRules = new List<IRule>();
allRules.add(DeleteRule);
...
allRules = allRules.OrderBy(x => x).ToList();
Run Code Online (Sandbox Code Playgroud)

选项3:为IList <T>实现快速排序.

选项4:选择一种不同的集合类型,自动将其元素保持在特定顺序.