如何根据自己的规则订购列表

本文关键字:列表 规则 自己的 何根 | 更新日期: 2023-09-27 18:29:34

我有一个LINQ查询:

IEnumerable<MyScheda> schede = from MyScheda scheda in new MySchede()
                               select scheda;

我想根据字段scheda.Note订购这个列表,它可以包含周六、周一、周日等等

所以,如果你愿意的话,我想像往常一样订购。我该怎么做?

如何根据自己的规则订购列表

您可以将IEnumerable.OrderBy扩展方法与自己的比较器一起使用

IEnumerable<MyScheda> schede = (from MyScheda scheda in new MySchede()
                               select scheda).OrderBy(s => s.Note, new DaysOfWeekComparer());

当然,您之前必须实现DaysOfWeekComparer()

您可以使用orderby:请求订购

List<String> names=new List<String>();
...
foreach(String name in from String s in names orderby s.Length select s)
{
...
}

在你的情况下,我相信你会想使用:

orderby scheda.Note

当然,这是假设可以比较Note的类型进行排序。如果不能直接比较,您需要编写一些代码,将"Note类型"转换为可排序类型,然后使用它而不是直接使用Note,如下所示:

int NoteIndexer(NoteType n);
IEnumerable<MyScheda> schede = from MyScheda scheda in new MySchede() 
    orderby NoteIndexer(scheda.Note)
    select scheda;