2010-08-26 4 views
0

J'ai des données qui va sur trois niveaux, comme celui-ci:Comment conserver ces données?

Identifier, Key, Value

Je voudrais regarder d'abord l'identificateur. Disons que c'est 1. Ensuite, je chercherais la clé, disons 2. Enfin, la clé me ​​donnerait la valeur. Je suppose que je pourrais avoir besoin de dictionnaires à valeurs multiples ou de tableaux à deux ou trois dimensions. Toutes les données sont fixes, avec seulement 6 éléments nécessaires pour un tableau.

Alors, je voudrais quelque chose dans le code qui peut être consulté comme ceci:

SomeInfo[identifier, key] qui valeur retournée.

Veuillez nous demander pour plus d'informations.

Répondre

5

Utilisez la classe Tuple et faites du Tuple votre clé. De cette façon, votre clé peut être composée de plusieurs valeurs:

SomeInfo[new Tuple<string, string>(identifier, key)]; 

Pour élaborer, la classe Tuple fournit une bonne mise en œuvre de GetHashCode() et equals() qui respecte les valeurs que vous passez Et si « identifiant » ou. "key" n'est pas une chaîne, vous pouvez changer les arguments de type que vous lui passez.

Modifier: Voici un exemple de travail:

var dictionary = new Dictionary<Tuple<string, string>, string>(); 
dictionary[new Tuple<string, string>("myIdentifier", "myKey")] = "myValue"; 
+0

Que voulez-vous dire en faisant mon Tuple la clé? Quelle classe dans SomeInfo? – BText

+0

Notez que le type 'Tuple' est nouveau dans .NET 4.0. –

+0

@ Dustin- Merci. C'est bien que je suis autorisé à utiliser .NET 4 cependant. – BText

Questions connexes