Если KeyStruct является структурой (объявленной с ключевым словом struct C #), не забудьте переопределить методы кода Equals и GetHash или предоставить собственный IEqualityComparer для конструктора словаря, потому что реализация метода ValueType.Equals по умолчанию использует Reflection для сравнения содержимого двухэкземпляры структуры.
Предпочтительно сделать KeyStruct неизменным, если вы это сделаете, вы можете вычислить хеш экземпляра структуры один раз, а затем просто вернуть его из метода GetHashCode.Но это может быть преждевременной оптимизацией, в зависимости от того, как часто вам нужно получать значение по ключу.
Как правило, можно использовать структуру в качестве ключа словаря.
Или, возможно, вы спрашиваетекак реализовать метод GetHashCode?