J'avais besoin de passer un IGrouping sur un index typé anonymement à une fonction.Passage d'un groupe typé anonyme à une fonction
List<DataClass> sampleList = new List<DataClass>();
var groups = sampleList.GroupBy(item => new { item.A, item.B, item.C });
J'avais besoin de traiter chacun des groupes avec une fonction. J'ai donc écrit ceci qui fonctionne.
static void ProcessGroup<T>(IGrouping<T, DataClass> group)
{
//consume group
}
Maintenant je dois savoir pourquoi cela fonctionne et est-ce la bonne façon de faire passer autour de ce genre de données. Je viens de l'écrire sur une idée que ce pourrait fonctionner.
Pourquoi cela ne fonctionnerait-il pas? – SLaks
@SLaks, parce qu'un type anonyme est introduit et que le compilateur pourrait l'interdire à l'extérieur du bloc dans lequel il est défini. –
Eric vous donnera probablement une meilleure réponse mais je pense que vous avez raison, si l'inférence de type n'était pas disponible, Que remplaceriez-vous 'var' par? Vous auriez probablement besoin de créer un type fort avec A, B, C et item => new StrongType (item.A, item.B, item.C) –