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