Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Hashtable with MultiDimensional Key in C#

I'm basically looking for a way to access a hashtable value using a two-dimensional typed key in c#.

Eventually I would be able to do something like this

HashTable[1][false] = 5; int a = HashTable[1][false]; //a = 5 

This is what I've been trying...hasn't worked

Hashtable test = new Hashtable(); test.Add(new Dictionary<int, bool>() { { 1, true } }, 555); Dictionary<int, bool> temp = new Dictionary<int, bool>() {{1, true}}; string testz = test[temp].ToString();  
like image 920
Scott Schulthess Avatar asked Mar 27 '09 14:03

Scott Schulthess


1 Answers

I think a better approach is to encapsulate the many fields of your multi-dimensional key into a class / struct. For example

struct Key {   public readonly int Dimension1;   public readonly bool Dimension2;   public Key(int p1, bool p2) {     Dimension1 = p1;     Dimension2 = p2;   }   // Equals and GetHashCode ommitted } 

Now you can create and use a normal HashTable and use this wrapper as a Key.

like image 50
JaredPar Avatar answered Oct 06 '22 01:10

JaredPar