Liste Linq pour mois + année pour toute l’année

Recherche d’une requête linq pour remplir une liste avec mois + année par exemple (janvier 2012)

à partir du mois en cours

var currentdate = System.DateTime.Now 

Si Dec 2011 est le mois en cours, alors la liste devrait être comme ceci

Décembre 2011 janvier 2012 …… novembre 2012

J’essaie de transformer mon exemple de code en une méthode que je pourrais presque utiliser en production car elle est plus testable et plus sensible à la culture:

 public IEnumerable GetMonths(DateTime currentDate, IFormatProvider provider) { return from i in Enumerable.Range(0, 12) let now = currentDate.AddMonths(i) select new { MonthLabel = now.ToSsortingng("MMMM", provider), Month = now.Month, Year = now.Year }; } 

Cette sortie (sur un ordinateur français):

Sortie LINQPad

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