Je souhaite déclarer un dictionnaire vb.net avec un entier comme clé et un objet anonyme comme valeur. Ceci est rempli par un parallèle pour chaque boucle. Les propriétés de la classe anonyme sont toujours les mêmes. Mais existe-t-il un moyen de déclarer le dictionnaire avec la signature de l'objet anonyme?Déclaration du dictionnaire (Of Integer, AnonymousType) dans vb.net
À l'heure actuelle, j'utilise un dictionnaire d'entier et d'objet.
Dim MyDict As New Dictionary(Of String, Dictionary(Of Integer, Object))(12)
'In my loop
Dim MyLinqDict = Something.GroupBy(…).ToDictionary(Function(x) x.Kex, Function(x) New With {.a = 1, .b = 2})
MyDict.Add(MyKey, MyLinqDict)
Maintenant, le problème évident est que le contenu de ce dictionnaire interne est juste un objet. Je ne sais pas, si, et, si oui, comment je peux déclarer cette dictée intérieure avec l'objet réel. Je ne sais pas, si je peux classer ce "Objet" comme le type anonyme.
Dim MyContent = DirectCast(MyDict("Some key")(1), ???).a
Quelqu'un peut-il m'aider à cet égard?
Vous ne pouvez pas l'avoir dans les deux sens. C'est anonyme ou pas. Si vous devez être capable de lancer et avoir un accès défini à la propriété 'a', vous devez le définir au lieu d'utiliser l'objet. Si vous voulez l'anonymat, vous devez juste croire que vous n'obtiendrez pas d'objet qui n'a pas 'a' –
Les types anonymes sont une commodité Linq. Ils cessent d'être pratique quand vous devez le faire. Donc, ne faites pas cela, déclarez une petite classe d'aide pour stocker le résultat. Maintenant c'est simple. –