Créer la matrice de mois entre deux dates

J'ai le fragment de code suivant que j'utilise pour obtenir les différentes dates entre les deux dates:

DateTime[] output = Enumerable.Range(0, 1 + endDate.Subtract(startDate).Days)
    .Select(offset => startDate.AddDays(offset))
    .ToArray(); 

Cependant, la section suivante

endDate.Subtract(startDate).Days

n'ont pas .Mois pour retourner le mois, dans la plage de dates.

Par exemple, si je 1/1/2010 et 6/1/2010 je m'attends à revenir 1/1/2010, 2/1/2010, 3/1/2010, 4/1/2010, 5/1/2010 et 6/1/2010.

Des idées?

Comment un Months bien travailler? Comment serait-il savoir qui du Mois # de jours à utiliser? Après la soustraction, vous êtes juste à gauche avec une plage de Temps qui est de la date-neutre et donc ne sait rien sur les mois à utiliser.
double possible de Différence en mois
.Days retourne le nombre de jours dans l'intervalle, pas le nombre de jours réels. Comment définissez-vous le fait que "un mois est entre 2 dates"? Le mois a au moins 1 jour dans cet intervalle? Le mois a tous les jours dans l'intervalle? Aussi comment faire, vous avez besoin de représenter un mois à l'aide d'un DateTime struct? - le 1er du mois?

OriginalL'auteur Andy Evans | 2010-10-08