Liste avec plusieurs index
Donné une Liste générique j'aurais besoin d'une sorte d'index (dans la base de données de sens) qui me permettrait de retrouver rapidement. Les clés pour cet indice ne serait pas unique, donc je ne peux pas utiliser un dictionnaire. Voici ce que j'ai à l'esprit: class Foo { P1, P2, P3 }, ce qui peut avoir des données de cette
{ "aaa", 111, "yes" }
{ "aaa", 112, "no" }
{ "bbb", 111, "no" }
{ "bbb", 220, "yes" }
{ "bbb", 220, "no" }
{ "ccc", 300, "yes" }
J'aurais besoin de rapidement accéder à tous les enregistrements où P1 est "bbb" (3e,4e et 5e) ou toutes celles où P2 est de 111 (1er et 3ème). Je pourrais utiliser une Liste triée, mais si j'ai besoin de plus d'une façon de tri et d'indexation que je finirais avec dupliqué listes.
Est-il quelque chose de construit dans l' .NET framework ou peut-être un OS de la bibliothèque qui en ferait quelque chose comme ça? Merci.
P. S. je l'ai mentionné "Liste triée" avec l'idée qu'une liste triée sera de retour /trouver un élément beaucoup plus rapide. Je n'ai pas besoin de la liste à être nécessairement triés; je suis juste à la recherche rapide de récupération /de recherche.
source d'informationauteur pbz | 2010-01-27
Vous devez vous connecter pour publier un commentaire.
Je n'ai jamais eu la chance de l'utiliser, mais vous pouvez essayer i4o. Ses supposées fournir des indices pour les objets en mémoire pour une utilisation avec Linq. Vous spécifiez l'index d'une classe en utilisant soit des attributs ou dans le cadre de la construction de l'indexeur, puis vous créez un IndexableCollection.
À ce point, vous venez de requête de la collection à l'aide de Linq, et les indices de derrière les coulisses de optomize des modèles d'accès pour les données.