Y a-t-il une collection en .NET qui permet de stocker keyvaluepair
Commandé par ordre semblait prometteur, mais semble faire plutôt défaut.
Maintenant, je cherche à IOPERDEDENMERABLE>, mais je ne peux pas sembler trouver une mise en œuvre, à l'exception de l'isorteddicary, mais ce n'est pas ce que je veux. Aucun tri doit être fait, l'ordre de l'insertion est important. p>
La raison pour laquelle je n'aime pas que la commande ordonnée soit que ce n'est pas générique. P>
5 Réponses :
Il suffit d'utiliser SO P> Liste
foreach(var item in list){
...}
Est-il garanti que la liste garde la commande?
Oui, il faut, car vous pouvez accéder aux éléments directement comme si vous faites une liste de matrices [0] .. etc.
Ancien poste, mais pour les autres liste
Vous voudrez peut-être rouler un à l'aide d'une file d'attente
keyvaluepair
Vous devriez simplement être capable d'utiliser une liste
Si Bien que vous puissiez créer votre propre liste CommandéDdicongary code> est ce que vous voulez si vous avez besoin d'un accès à la fois à des éléments à clé et à l'insertion à des articles forts> ... C'est vraiment une combinaison d'une table de hachage et d'une liste. Il fournit un moyen d'accéder aux éléments de celui-ci par indice d'insertion ou par clé. C'est la seule collection de .net qui fait cela. Malheureusement, ce n'est pas générique. P>
ordonnéDdicary code> ne répond pas à vos besoins uniquement parce qu'il n'est pas générique - alors vous pouvez utiliser La version ici qui fournit un équivalent générique . S'il y a d'autres raisons pour lesquelles cela ne fonctionne pas pour vous, mettez à jour votre message et nous pouvons rechercher une meilleure option. P>
Cela résume joliment mes options. Depuis que je n'aurai pas besoin de la recherche clé de toute façon, je vais avec IList. Merci
Bien que je suis en retard sur le jeu, .NET Framework 4.5 fournit de nouvelles classes pour vous. Voir triédlist
ou triéddiction
. Si vous vous demandez lequel vous devriez utiliser lequel vous devriez utiliser, le MSDN fournit quelques bonnes raisons pour lesquelles vous pourriez en choisir un sur l'autre. P>
La classe générique de tri définie est une gamme de paires de touches / valeur avec une récupération O (journal n), où n est le nombre d'éléments du dictionnaire. Dans ce cas, il est similaire à la classe générique de triodicité. Les deux classes ont des modèles d'objet similaires et ont à la fois une récupération O (log n). Lorsque les deux classes diffèrent de la mémoire et de la rapidité d'insertion et de retrait: p>
sortedList
code> utilise moins de mémoire que triéddiction
CODE>. LI>. triéddiction
CODE> a des opérations d'insertion et de suppression plus rapides pour les données non formées, O (log n) par opposition à O (n) pour Tritedlist
code>. li> - Si la liste est renseignée à la fois à la fois des données triées,
TritedList
code> est plus rapide que Soyeddicary
Li>. ul> Une autre différence entre le type
SoyeddicDictionary
Code> et TritedList
CODE> CLASSES est que LIEDLIST
CODE> Prend en charge une récupération indexée efficace des clés et des valeurs via les collections renvoyées par les propriétés de clés et de valeurs. Il n'est pas nécessaire de régénérer les listes lorsque les propriétés sont accessibles, car les listes ne sont que des emballages pour les tableaux internes de clés et de valeurs. P> blockQuote> Les deux liens ont des remarques similaires (ce qui est l'endroit où la citation vient). Ils ont également plus d'informations pour les deux classes. Je recommanderais de lire les deux sections si vous souhaitez utiliser l'un d'entre eux. P>
LiedList ne maintient pas l'ordre d'insertion que l'OP demande (et que je cherchais).
Liste des paires de keyValue est la meilleure façon par rapport à la commande ordonnée / ordonnancierddicary. Cela maintient l'indice selon l'insertion et le type générique de support.
La commandeDdiconary ne trie pas les valeurs et vous pouvez accéder aux éléments par l'index. Qu'est-ce qui manque exactement?
CommandéDdicary code> est destiné à ce que vous recherchez, malheureusement, ce n'est pas générique. Au-delà, y a-t-il quelque chose d'autre que vous recherchez? Vous obtiendrez de meilleures réponses si vous pouvez clarifier ce que vous recherchez (et pourquoi les classes intégrées ne répondent pas à vos besoins).
Je voudrais échapper à tout le casting si possible.