我有这个LINQ查询:
IEnumerable<MyScheda> schede = from MyScheda scheda in new MySchede()
select scheda;
我想根据字段scheda.Note
订购此列表,该字段可以包含星期六,星期一,星期日等等。
那么,你怎么希望,我想把它们作为通常的订单或一天订购。 我该怎么办?
答案 0 :(得分:1)
您可以将IEnumerable.OrderBy
扩展方法与您自己的比较器一起使用:
IEnumerable<MyScheda> schede = (from MyScheda scheda in new MySchede()
select scheda).OrderBy(s => s.Note, new DaysOfWeekComparer());
当然,您必须先实施DaysOfWeekComparer()
。
答案 1 :(得分:0)
您可以使用 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-type”转换为可排序类型,然后直接使用而不是Note,如下所示:
int NoteIndexer(NoteType n);
IEnumerable<MyScheda> schede = from MyScheda scheda in new MySchede()
orderby NoteIndexer(scheda.Note)
select scheda;