117 votes

LINQ - Convertir une liste en dictionnaire avec valeur comme liste

J'ai un

List<MyObject> 

que je récupère dans la base de données. Cependant, je voudrais qu'il soit codé par une propriété dans MyObject à des fins de regroupement. Quelle est la meilleure façon avec LINQ de lancer ma liste à :

Dictionary<long, List<MyObject>>

J'ai ce qui suit :

myObjectList.ToDictionary(x => x.KeyedProperty)

Mais il revient :

Dictionary<long, MyObject>

228voto

JaredPar Points 333733

Il semble que vous souhaitiez regrouper les instances MyObject par KeyedProperty et mettre ce regroupement dans un Dictionary<long,List<MyObject>>. Si oui, essayez les

List<MyObject> list = ...;
var map = list
  .GroupBy(x => x.KeyedProperty)
  .ToDictionary(x => x.Key, x => x.ToList());

suivants

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X