Comment puis-je convertir à partir d'un Dictionnaire à un SortedDictionary à l'aide de LINQ en C#?
J'ai un Dictionary<string, double>
et je veux le convertir en un SortedDictionary<double, string>
. Comment puis-je le faire à l'aide de LINQ méthodes d'extension en C# 3.0?
EDIT: Générique de crochets de pas dans la question d'origine, alors que Marc et Jared répondu.
- Vouliez-vous dire SortedDictionary<string, double>?
Vous devez vous connecter pour publier un commentaire.
modifier cette réponse était avant la modification; une réponse à la mise à jour du problème, voir cette réponse.
Pourquoi utiliser LINQ? Il y a un constructeur pour cela:
Vous pourriez ajouter un
ToSortedDictionary
- mais je ne voudrais pas ennuyer...Pas de LINQ est nécessaire. SortedDictionary a un constructeur pour faire la conversion.
Il semble que vous vous demandez une manière élégante de prendre un
Dictionary<TKey,TValue>
et le transformer en unSortedDictionary<TValue,TKey>
(notez que la valeur de laDictionary
est désormais la clé de laSortedDictionary
). Je ne vois pas de réponse à relever ce donc ici que ça se passe.Vous pouvez créer une méthode d'extension qui ressemble à ceci:
Et votre code devrait ressembler à ceci:
Vous n'avez pas besoin de LINQ, juste quelques chouettes les méthodes d'extension:
Exemple d'utilisation:
Inversion à l'aide de
ToDictionary
:Exemple d'utilisation:
Exemple de l'inversion et de tri (voir mon autre réponse pour la définition de
Sort
):