查找linq查询以填充月份+年份列表(例如2012年1月)
从当月开始
var currentdate = System.DateTime.Now
如果2011年12月是当月 那么列表应该是这样的
2011年12月 2012年1月 ...... 2012年11月
答案 0 :(得分:7)
var months =
Enumerable.Range(0, 12).
Select(n => DateTime.Today.AddMonths(n)).
Select(d = new { Year = d.Year, Month = d.Month });
答案 1 :(得分:6)
我正在编辑以将我的示例代码转换为一种我可能在生产中几乎可以使用的方法,因为它更具可测性和文化意识:
public IEnumerable GetMonths(DateTime currentDate, IFormatProvider provider)
{
return from i in Enumerable.Range(0, 12)
let now = currentDate.AddMonths(i)
select new
{
MonthLabel = now.ToString("MMMM", provider),
Month = now.Month,
Year = now.Year
};
}
此输出(在法国计算机上):