Сохраняет ли Distinct() всегда первый элемент в списке
Будет
int[] nums = { 2, 3, 3, 4, 2, 1, 6, 7, 10 };
var distinct = nums.Distinct();
всегда возвращать 2, 3, 4, 1, 6, 7, 10
в этом порядке?
Ответы
Ответ 1
Определенное поведение Enumerable.Distinct заключается в том, что оно вернет неупорядоченную коллекцию (Документация).
Однако текущая реализация Distinct в Linq to Objects сохранит порядок. Это не гарантируется для других поставщиков LINQ, хотя на поведение не следует полагаться.
Ответ 2
Я думаю, что слово "неупорядоченное" означает тот же порядок исходной последовательности.
Следовательно, вызывающий должен решить, сортировать результат или нет.
Ответ 3
В общем: нет, но в вашем случае (с массивом int): возможно, да. Бьюсь об заклад, они просто перечисляют сбор и игнорируют предметы, с которыми они уже сталкивались. Но не рассчитывайте на это поведение в разных версиях .NET или для разных типов коллекций.
Как указал JaredPar в своем ответе, результат указан как неупорядоченный. Если вам нужен какой-то конкретный заказ, вам нужно отсортировать их позже, используя любой алгоритм, имеющий смысл в вашем случае.