2011-12-19 110 views
3

尋找LINQ查詢,以填補月+年爲例名單(2012年1月)LINQ的名單月+年全年

起動形式當月

var currentdate = System.DateTime.Now 

如果2011年12月爲當月 然後列出應該是這樣的

2011年12月2012 月 ...... 2012

回答

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 
      }; 
} 

此輸出(法國計算機上):

LINQPad Output

7
var months = 
    Enumerable.Range(0, 12). 
    Select(n => DateTime.Today.AddMonths(n)). 
    Select(d = new { Year = d.Year, Month = d.Month });