Хорошо, поймите, что я из Cold Fusion, поэтому я склонен думать о вещах с точки зрения CF, а C # и CF настолько различны, насколько это возможно в общем подходе.
Итак, проблема в том, что я хочу извлечь «таблицу» (вот как я это думаю) данных из базы данных SQL через LINQ, а затем я хочу выполнить некоторые вычисления в памяти. Эта «таблица» содержит 6 или 7 значений пары разных типов.
Прямо сейчас мое решение состоит в том, что я делаю запрос LINQ, используя Общий список пользовательского Типа. Итак, мой пример - RelevanceTable. Я извлекаю некоторые данные, которые я хочу сделать, чтобы некоторая оценка данных, которые сначала начинаются с .Contains. Похоже, что .Contains хочет действовать по всему списку или ничего. Так что я могу использовать его, если у меня List<string>
, но если у меня List<ReferenceTableEntry>
, где ReferenceTableEntry - мой пользовательский тип, мне нужно переопределить IEquatable и сообщить компилятору, что именно означает «Equals».
Хотя это не кажется необоснованным, кажется, что пройти простую проблему - долгий путь, поэтому у меня есть подозрение, что мой подход с самого начала ошибочен.
Если я хочу использовать LINQ и .Contains, является ли переопределение интерфейса единственным способом? Кажется, если есть способ просто сказать, над каким полем работать. Есть ли другой тип коллекции помимо LIST, который, возможно, имеет эту способность. Я начал много использовать List для этого, и пока я искал и смотрел, я вижу некоторые другие, но не обязательно превосходящие подходы.
Я не ищу какой-то тонкости в производительности, компактности или удобочитаемости, просто интересуюсь, использую ли я крестовую отвертку с шестигранным винтом. Если мой подход "приличный", но, конечно, не лучший, я бы хотел узнать лучше, но просто зная, что его на стадионе мало что скажет "Да! Я не глупый!" и я бы закончил хотя бы то, что я делаю полностью, прежде чем переключиться на другой метод.
Надеюсь, я объяснил это достаточно хорошо. Спасибо за помощь.