Составной ключ в Dictionary

1,00
р.
Допустим, есть класс, у которого есть 2 цифровых поля.
Хотелось бы эти 2 поля сделать первичным ключем в Dictionary.
В будущем этот ключ будет использоваться для поиска совпавших значений между 2 мя словарями.
Как это можно сделать, что бы не потерять в производительности?
У меня была идея, хранить их как строку, но может быть есть решение лучше?
P.S
Dictionary использую из-за высокой скорости поиска по ключу.
К моему удивлению, DataTable оказался тормознутее=( на 20к строк

Ответ
Есть несколько путей использовать составной ключ для Dictionary (аналогично для HashSet)
Использовать структуру. Правила сравнения структур таковы, что сравниваются значения всех полей, а не ссылки на объекты. Использовать класс с переопределенными методами Equals, GetHashCode. Это позволит использовать для вычисления хэша не все поля класса, а только нужные. Использовать класс реализующий IEquatable Использовать при создании словаря перегрузку конструктора принимающую IEqualityComparer