Посмотри на свой алгоритм! Знаете ли вы заранее, какие значения из вашего массива добавляются более одного раза?
Если вы знаете, что можете уменьшить количество циклов и это приведет к лучшей производительности.
В этом случае, да, вероятно, проще сделать вашу структуру классом.
Что касается обоснования, вы, по сути, создаете специализированный кортеж
. Интересно отметить, что разработчики библиотеки решили сделать .Net 4 Tuple
классом, а не структурой. (Эта страница является создателем кортежа и связана с различными классами экземпляров кортежа)
Любой из них должен работать нормально (пока структура
неизменна). DateTime
и ссылки не должно быть достаточно, чтобы сделать его слишком большим.
Я предполагаю, что вы используете его в качестве значения (а не ключа ) в словаре? Если используется в качестве ключа, вам необходимо переопределить Equals
и GetHashCode ()
, независимо от struct
vs class
.