【发布时间】:2012-04-13 13:07:05
【问题描述】:
我如何在 linq 中按月份名称和年份排序,它目前按字母顺序排序,这在显示报告时会导致问题
我正在寻找 2011 年 11 月、2011 年 12 月、2012 年 1 月、2012 年 2 月
我主要关心的是结果 MonthList,因为它是 monthlist1 和 monthlist2 之间的联合
感谢您的帮助和见解
var monthlist1 = data.
Select(x => new { wkdate = x.WKENDDATE }).
OrderBy(y => y.wkdate).
Select(m => new {
monthname = m.wkdate.ToString("MMM yyyy",
CultureInfo.CreateSpecificCulture("en-US"))
}).
Distinct().
ToList();
var monthlist2 =
data.Select(x => new { wkdate =
ExportHelper.getSplitEndDate(x.WKENDDATE).AddDays(1)})
.OrderBy(y => y.wkdate)
.Where(l => ExportHelper.isSplitWeek(l.wkdate.AddDays(-6), l.wkdate) == true)
.Select(m => new {
monthname = m.wkdate.ToString("MMM yyyy",
CultureInfo.CreateSpecificCulture("en-US"))
})
.Distinct()
.ToList();
var monthlist =
monthlist1.
Union(monthlist2).
Distinct().
OrderBy(m=> m.monthname).
ToList();
【问题讨论】:
-
请格式化您问题中的代码,使其更具可读性。理想情况下不会有水平滚动条。
-
如果应用程序是多语言的,按月份名称排序可能会成为一个问题
-
当前代码有什么问题?
-
它按月份名称的字母顺序排列
-
那么,你想要
Apr, Aug, Dec ...等等?