Distinct
не знает, что вы заказали свои предметы до того, как он их получит, поэтому он не может использовать эти знания. Таким образом, он должен предполагать, что элементы неупорядочены, и поэтому будет просто делать с ними то, что хочет.
Типичная реализация будет использовать хеш-таблицу, которая упорядочена не так, как вы обычно хотите, чтобы элементы упорядочивались, поэтому результатом отдельной операции является неупорядоченный набор.
Так что, как предлагали другие, измените порядок ваших звонков, чтобы сделать заказ последним, и вы должны получить то, что хотите.