Est-il possible de remplacer le Key
par lequel un IGrouping
est groupé?Remplacer la clé d'une IGrouping?
Je GROUPEMENT actuellement par un type anonyme comme celui-ci:
var groups = orders.GroupBy(o => new { o.Date.Year, o.Date.Month });
Mais maintenant ma clé de regroupement est un type anonyme. Je voudrais remplacer cette clé de regroupement par un Type défini, "YearMonth", avec une méthode ToString
remplacée.
public class YearMonth
{
public int Year { get; set; }
public int Month { get; set; }
public override string ToString()
{
return Year + "-" + Month;
}
}
Y a-t-il un moyen de remplacer la clé de regroupement? Ou pour créer une nouvelle IGrouper de l'IGrouping existant avec une nouvelle clé de regroupement?
Pourquoi voulez-vous un groupe sur un type, puis modifier la clé au lieu de juste en groupant sur la clé que vous * voulez * avoir? – Servy
Il suffit d'utiliser 'o => new YearMonth (o.Date.Year, o.Date.Month)' à la place ... tant que 'YearMonth' remplace 'Equals' et' GetHashCode' de manière appropriée, cela devrait être bien ... au moins pour LINQ to Objects. –
Il est 'readonly' pour une bonne raison, vous ne devriez pas modifier plus tard ce qui a été utilisé pour identifier des objets égaux. –