Salut, j'ai une liste d'éléments de type classe class1 comme indiqué ci-dessous. Comment les regrouper en
Dictionary<int,List<SampleClass>>
Basé sur l'ID de groupe
class SampleClass
{
public int groupID;
public string someData;
}
J'ai fait comme ça:
var t =(from data in datas group data by data.groupID into dataGroups select dataGroups).ToDictionary(gdc => gdc.ToList()[0].groupID, gdc => gdc.ToList());
Y a-t-il une meilleure façon de faire cela
Il sera plus efficace de remplacer:
gdc => gdc.ToList()[0].groupID
avec:
gdc => gdc.Key
A part ça, on dirait que j'aurais fait.
Alternativement, si vous êtes d'accord avec les méthodes d'extension par rapport à LINQ (je les préfère personnellement), cela peut encore être raccourci avec:
var t = data.GroupBy(data => data.groupID).ToDictionary(gdc => gdc.Key, gdc => gdc.ToList());