j'ai un
List<MyObject>
que je récupère de la base de données. Cependant, je voudrais qu'il soit associé à une propriété dans MyObject à des fins de regroupement. Quelle est la meilleure façon avec LINQ de diffuser ma liste sur:
Dictionary<long, List<MyObject>>
J'ai ce qui suit:
myObjectList.ToDictionary(x => x.KeyedProperty)
Mais ça revient:
Dictionary<long, MyObject>
Réponses:
Il semble que vous souhaitiez regrouper les
MyObject
instances parKeyedProperty
et placer ce groupe dans un fichierDictionary<long,List<MyObject>>
. Si tel est le cas, essayez ce qui suitla source
Vous devez utiliser la
ToLookup
méthode d'extension sur laEnumerable
classe comme ceci:Si vous souhaitez placer cela dans un dictionnaire, vous pouvez utiliser la
ToDictionary
méthode d'extension , comme ceci:la source
ILookup
références conservent les références alors que la réponse acceptée ne le fait pas?Lookup<TKey, TValue>
peut être une meilleure structure que aDictionary<TKey, TValue>
.ILookup
c'est souvent la structure de code idéale, elle n'est souvent pas bien gérée pour la sérialisation.