J'ai besoin d'implémenter une grande collection d'objets Widget, chacun contenant une chaîne de chemin de fichier unique ("FilePath"). Je dois être en mesure de faire ce qui suit:Structures de données C# Question (Quelle collection utiliser?)
- Récupérer un objet Widget rapidement donné le chemin du fichier
- Modifier le chemin du fichier d'un Widget sans créer un nouvel objet (plusieurs autres objets peuvent contenir des références à un seul Widget, et les traquer aurait un impact sur la performance)
- avec une référence de Widget, déterminer son chemin de fichier
J'ai d'abord pensé à l'aide d'un SortedList générique en utilisant le chemin du fichier comme une clé, mais dupliquer le chemin pour beaucoup des milliers d'objets pourraient rapidement vous manger p mémoire. J'ai considéré enlever le chemin de l'objet et le stocker seulement dans la liste des clefs, mais cela rendrait l'exigence 3 ci-dessus difficile à accomplir. Ce à quoi je m'appuie maintenant, c'est de rouler ma propre classe dérivée de la liste <> qui ajoute les objets Widget dans un ordre trié, et les récupère avec une recherche binaire. L'exigence 2 peut être accomplie simplement en supprimant un objet de la liste, en changeant son chemin de fichier, et en l'ajoutant à la liste.
Mais je suis relativement nouveau à C# et je voulais vérifier avec les grands esprits ici et voir s'il me manque une autre solution évidente.
Merci!
Cette réponse et d'autres ci-dessus ont répondu à des parties de la question, mais c'est la réponse qui répondait à la préoccupation principale et qui était la plus succincte. Merci! –