.NET - Je veux faire ceci: Dim D comme nouveau dictionnaire (de String, Array (OF MYOBJECT))
-
06-07-2019 - |
Question
J'aimerais créer un dictionnaire indexé par Strings: Dictionary (of String, ...)
Je voudrais que le type après la virgule soit un tableau de MyObject.
Si tout ce que je fais est le suivant:
Dim D as new Dictionary(of String, Array)
J'ai l'impression de manquer certaines performances dès que j'accède à un membre:
Dim Object1 as MyObject = MyDictionary("Key1")(4)
Ne doit-il pas effectuer une recherche pour déterminer le type d'objet que le tableau contient chaque fois que j'y accède de cette manière?
La solution
Array
n'est pas ce que vous voulez; utilisez plutôt le tableau fortement typé que vous voulez avoir:
Dim D as New Dictionary(Of String, MyObject())()
Cela fonctionne comme un charme.
Autres conseils
Si la valeur doit réellement être un tableau de MyObject, vous pouvez procéder comme suit:
Dim D as new Dictionary(of String, MyObject())
En utilisant array, vous invoquerez le transtypage lorsque vous le récupérerez. Que diriez-vous de ceci:
Dim D as new Dictionary(of String, List(of MyObject))