Comment faire pour convertir un IEnumerable de Dictionnaire

J'ai du dictionnaire comme ce

Dictionary<MyStructure, MyObject>

MyStructure moyens public struct ...
Monobjet signifie une entité spécifique ...

Puis, à travers les événements que je passe mon dictionnaire comme un

IEnumerable<MyObject> col = this.GetCollection().Values;

Puis, quand je gérer mon cas j'utilise mon IEnumerable mais je veux convertir un ancien dictionnaire pour accéder à ses propriétés, mais je ne suis pas en mesure de le faire. J'ai essayer cette.

        Dictionary<MyStructure, MyObject> dict =
            args.MyObjectCollection.ToDictionary(x => x.Key, y => y.Value);

Je suis en utilisant "à l'aide du Système.Linq;" et la Clé et la Valeur sont pas reconnaître. Quand j'écris point après x ou y. Le helper me montre les propriétés de l'objet Monobjet.

  • Vous ne pouvez pas, vous avez seulement les valeurs, pas les touches plus. Vous aurez besoin de réparer votre événement de sorte qu'il passe IDictionary<> ou IEnumerable<MyStructure, MyObject> à la place. Également examiner si cela est nécessaire à tous, il ne sera pas quand vous également exposer le dictionnaire grâce à une propriété ou GetXxx() la méthode de l'expéditeur. Les événements doivent normalement passer uniquement les données qui sont uniquement valable à l'instant précis dans le temps que l'événement est déclenché et ne peut pas être raisonnablement obtenue d'une autre manière. Le passage d'un dictionnaire est une odeur de code, trop de chances que l'événement récepteur stocke une rassis copie des données.