Ответ на задачу: для удаления повторяющихся элементов используют метод LINQ Distinct. Он не изменяет исходную коллекцию, а возвращает новую. Если не использовать возвращаемое значение, вызов бессмыслен. В данном примере результат Distinct следовало присвоить переменной query.