假设我们有一个像这样的简单模型,其中一列是“月份”,是一个三字母字符串。
public class SampleModel
{
public int ID { get; set; }
public string Column1 { get; set; }
public string Month { get; set; }
public string Column2 { get; set; }
}
如果我们想按月对模型进行排序,像这样的 LINQ 语句
query.OrderBy(m =>m.Month)
会产生以下字母排序,因为 Month
是一个字符串。
有没有一种简单的方法可以按时间顺序对 Month
进行排序?
最佳答案
您可以通过将数据存储在查找表/字典或与此相关的枚举中来实现。如果您使用的是 LINQ to Objects,而不是任何基于 LINQ 的奇特表达式,则此方法有效。
Dictionary<string, int> months = new Dictionary<string, int>();
months.Add("Jan", 0);
// and so on
query.OrderBy(m => months[m.Month]);
此解决方案适用于其他类型的数据,而不仅仅是月份。
关于c# - 是否有一种简单的 LINQ 方法可以按月份对列表进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38106130/