J'ai besoin d'utiliser un dictionnaire dans le projet, mais comme nous savons qu'ils sont uniquement accessibles en utilisant les clés et ne pas utiliser les index, et je veux accéder aux éléments du dictionnaire en utilisant des index. Donc je bidouille sur le web et découvre OrderedDictionary car ils sont accessibles en utilisant les index et les clés mais ils ont quelques performance issue et comme je suis en train de lire/écrire le dictionnaire chaque minute du jour, ce n'est pas une bonne idée d'utiliser OrderedDictionary. Donc, ma question ici est qu'il existe une alternative disponible qui me donne la fonctionnalité du dictionnaire et je peux aussi y accéder en utilisant des index et ne pose pas de problème de performance.Existe-t-il une alternative de Dictionary dans .NET?
Répondre
en réponse à vos commentaires que vous n'attendez une centaine de mises à jour chaque minute, ce qui est très peu de travail - pratiquement rien. Vous pouvez toujours utiliser un OrderedDictionary
, la performance ne sera pas un problème pour vous.
Je suis d'accord avec votre réponse que 100 éléments est pratiquement rien ... mais 100 items inlcude inscription, login, erreur, pagevisits etc compte qui peut être n'importe quel nombre de lire et écrire dans le dictionnaire. .. et je ne prétendais pas que OrderedDictionary causerait un problème de performance ... Je l'ai écrit dans ma question mais j'ai aussi mentionné le post où je l'ai lu ... J'espère que je clarifierai mes préoccupations –
SortedList<TKey, TValue>
a une propriété, Values
, c'est-à-dire IList<TValue>
. Est-ce suffisant? C'est rapide seulement pour les petits "ensembles" d'éléments. La différence avec SortedDictionary
est ici http://msdn.microsoft.com/en-us/library/5z658b67(v=vs.80).aspx
Puis-je vous demander pourquoi vous voulez y accéder "par index"? Vous pouvez toujours l'énumérer avec foreach, vous savez?
Je veux supprimer le premier élément du dictionnaire après l'avoir enregistré dans une base de données ... –
L'index n'est pas "stable". Si vous insérez B, puis insérez A, l'index de A sera 0, l'index de B sera 1. La seule collection qui maintient l'ordre d'insertion est 'OrderedDictionary' (http://stackoverflow.com/questions/2722767/c -order-preserving-data-structures) – xanatos
Essayez SortedDictionary http://msdn.microsoft.com/en-us/library/f7fta44c.aspx
- 1. Vous attendez une alternative dans .NET 4.0?
- 2. . Encoding.Default alternative .NET dans wxWIdgets?
- 3. Comment fonctionne Protobuf-net pour Dictionary/KeyValuePair?
- 4. com + alternative en .net?
- 5. .net alternative à glassfish
- 6. .NET/WPF Alternative
- 7. PHP English Dictionary
- 8. Existe-t-il une alternative à Dictionary/SortedList qui autorise les doublons?
- 9. .NET WebClient.DownloadData (url) alternative dans C++/WinAPI?
- 10. Apache alternative camel en .net?
- 11. Dictionary <string, string> Objet et tri dans asp.net 2.0 ou alternative
- 12. Alternative à l'implémentation URI de .NET?
- 13. Une alternative ADO.net?
- 14. . NET équivalent ou une alternative à Java GlyphVector?
- 15. Une alternative pour "CSharpCodeProvider.Parse"
- 16. objet Dictionary
- 17. Quel type de résolution de collision est choisi pour l'implémentation HashTable/Dictionary dans .net?
- 18. .Net Thread.Suspend est obsolète. Je cherchais une alternative
- 19. Bonne alternative à GenuineChannels pour .net remoting
- 20. Json Désérialisation de la forme Dictionary <string, Dictionary <string, string >>
- 21. Alternative à fileStream en C# .NET
- 22. Class Dictionary dans java (structure de données)
- 23. Comment sérialiser/désérialiser une variable Dictionary?
- 24. SqlMetal alternative pour .NET Compact Framework 2.0
- 25. /proc/net/tcp Alternative sous Solaris 11
- 26. EnvironmentPermission Deny est obsolète dans .Net 4.0 any alternative?
- 27. DefaultModelBinder ne peut pas désérialiser l'objet .NET Dictionary passé à une action en tant qu'objet JSON?
- 28. Alternative pour les collections dans .NET Framework 2.0
- 29. ProviderCollection To Dictionary
- 30. ASp.NET Dropdown and Dictionary
Vous savez que vous pouvez appeler ElementAt (index) sur le dictionnaire? – Dominik
En quoi lire/écrire chaque minute dans le dictionnaire est-il un problème de performance? – tzup
Voulez-vous y accéder par index ou simplement parcourir tous les éléments? Sinon, vous pouvez utiliser la propriété [Values] (http://msdn.microsoft.com/en-us/library/ekcfxy3x.aspx). – riezebosch