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.
Vous devez vous connecter pour publier un commentaire.
lorsque vous faites votre IEnumerable, vous perdez votre MyStructure Clés ...
Si vous connaissez un moyen de créer la structure de la MyObject cas, vous pouvez résoudre ce ...
si vous êtes à la recherche d'une alternative ... passer l'ensemble du dictionnaire à partir du point où elle a toujours les données d'origine
Si votre collection n'est pas une collection de KeyValuePairs ou d'un autre type avec la Clé et la Valeur des propriétés, vous ne pouvez pas les appeler. Une collection de toutes les valeurs est tout simplement une collection de ce type.