通过字符串字段方法的通用排序

Eri*_*rix 2 c# sorting c#-4.0

我在这里遇到了一个情况,我不确定最好的处理方式是......

我的前端代码(ASP.NET)不断获取用于填充UI组件的业务对象列表.最近,我实现了一个自然排序,我想用于所有类型的这些列表.(目前它只是对字符串列表进行排序)根据业务对象的类型,我需要对不同的字段名称进行排序.该字段始终包含字符串.我在编译时知道字段名称.除Object之外,业务对象没有公共父级.

我想有一个方法可以为任何类型的Enumerable做到这一点.我无法更改底层业务对象的代码.你会怎么做?

Mas*_*sif 5

有点像Linq的订单吗?

您必须在IComparer中实现自然排序,但之后您只需使用:

Items.OrderBy(i => i.SomeStringField, NaturalSorter);
Run Code Online (Sandbox Code Playgroud)