C# 我如何根据自己的规则订购一份清单?

C# 我如何根据自己的规则订购一份清单?,c#,linq,C#,Linq,我有一个LINQ查询: IEnumerable<MyScheda> schede = from MyScheda scheda in new MySchede() select scheda; IEnumerable schede=来自新MySchede()中的MyScheda scheda 选择scheda; 我想根据字段scheda.Note对该列表进行排序,该字段可以包含周六、周一、周日等 所以,你怎么能这么想呢

我有一个LINQ查询:

IEnumerable<MyScheda> schede = from MyScheda scheda in new MySchede()
                               select scheda;
IEnumerable schede=来自新MySchede()中的MyScheda scheda
选择scheda;
我想根据字段
scheda.Note
对该列表进行排序,该字段可以包含周六、周一、周日等

所以,你怎么能这么想呢,我想照常点或当天点。 我该怎么做?

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

IEnumerable<MyScheda> schede = (from MyScheda scheda in new MySchede()
                               select scheda).OrderBy(s => s.Note, new DaysOfWeekComparer());
IEnumerable schede=(来自新MySchede()中的MyScheda scheda)
选择scheda).OrderBy(s=>s.Note,newdaysofweekcomparer());

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

您可以使用orderby请求订购:

List<String> names=new List<String>();

...

foreach(String name in from String s in names orderby s.Length select s)
{
...
}
当然,这假设可以比较注释的类型以进行排序。如果无法直接比较,则需要编写一些代码,将“注释类型”转换为可排序类型,然后使用该类型而不是直接使用注释,如下所示:

int NoteIndexer(NoteType n);

IEnumerable<MyScheda> schede = from MyScheda scheda in new MySchede() 
    orderby NoteIndexer(scheda.Note)
    select scheda;
int注释索引器(NoteType n);
IEnumerable schede=来自新MySchede()中的MyScheda scheda
OrderByNoteIndexer(scheda.Note)
选择scheda;

注释字段是什么类型的?请参见我的回答:使用该字段,您可以定义星期一<星期二,星期二<星期三等。请参见我的回答,了解如何实现
工作日比较者
。如果Note是一个string/varchar字段,它将不会按天排序orderproved,我的响应确实取决于Note的类型是否可以按照他想要的顺序进行比较。但是,没有关于票据类型的其他信息。如果得到更多信息,我们可以稍微解释一下解决方案,但您是否认为此响应是一个合理的起点?这是一个不错的起点,但可能需要在回答中提及字段类型正确的要求。:)
int NoteIndexer(NoteType n);

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