Простой (и, вероятно, не самый эффективный для использования памяти) способ - сохранить записи в 3 отдельных хеш-таблицах (Dictionary
) (по одной для каждой пары свойств) и просмотреть запись на основе рассматриваемого свойства
Другим способом может быть использование 3-кортежа в качестве ключа для карты (заполненного тремя рассматриваемыми свойствами) и использование собственного компаратора, который учитывает только соответствующий элемент в 3-кортеже на основе свойствадано для поиска
Если вы можете придумать порядок между тремя свойствами и внутри них (например, лексическое упорядочение), вы можете использовать это для хранения записей в отсортированной карте и выполнения бинарного поиска.(который будет более эффективным, чем линейный запрос всех элементов, чтобы найти тот, который вы ищете)
РЕДАКТИРОВАТЬ: добавлено конкретное имя класса для пояснения после того, как комментарий указал его