Вот пример.
byte[] bufer1 = new byte[5] { (byte)4, (byte)0, (byte)91, (byte)204, (byte)2 };
byte[] bufer2 = new byte[5] { (byte)4, (byte)0, (byte)91, (byte)204, (byte)2 };
Dictionary<byte[], string> Dict = new Dictionary<byte[], string>();
Dict.Add(bufer2, "bla bla bla");
bool test = Dict.ContainsKey(bufer1);
Console.WriteLine(Dict[bufer1]);
Console.ReadLine();
Я так понял если у массивов одинаковое содержимое, то это еще не значит, что они равны. А ключ в словаре является ссылкой на переменную bufer2.
Поэтому переменная test не true, а Console.WriteLine(Dict[bufer1]); вызывает исключение.
Я так понимаю у меня не получится вытаскивать из словаря значение по ключу если ключ не является ссылкой на переменную даже не смотря, что у них одинаковое содержимое?
Я-то хотел создать структуру хранения данных при которой можно вытаскивать строковые значения по байтовому ключу Dict[byte[]]. Но это не работает в случае если ключ - байтовый массив.
Или можно что-то сделать?