Вы поставили точку останова на линии, где находится Dim dtManufacturer?
Я создал несколько примеров классов для представления ваших объектов данных в том виде, как вы их определили.
Dim linqQuery = From dtIT In myTables _
Join dtIL In otherTables On dtIT.ItemID Equals dtIL.ItemID _
Where dtIL.IsAvaliable = True _
Order By dtIT.Manufacturer Ascending _
Select New With {.Alpha = UCase((dtIT.Manufacturer).Substring(0, 1))}
Теперь, когда у меня есть точка останова на строке после этого LINQ Query, я могу осмотреть объект linqQuery с помощью "linqQuery.ToList" и увидеть порядок данных. Это на самом деле упорядочивает вывод в порядке упорядочения на основе имени производителя.
Почему вы думаете, что ваш код не упорядочивает данные? Используя точки останова и наблюдение, проверьте объект «запрос» (используя «query.ToList» в «Быстрый просмотр») и посмотрите, правильно ли упорядочены результаты.