Dave Kreskowiak
Это можно сделать немного чище вот так:
Dim bytes As Byte() = {22, 123, 1, 1, 0, 22}
bytes = bytes.Distinct().OrderBy(Function(x) x).ToArray()
Distinct может быть вызван для любого IEnumerable, которым является массив байтов. В вашем случае Distinct() вернет IEnumerable(Of Byte). Это приводит к тому, что следующая операция стоит немного меньше, так как вы не сортируете так много элементов.
Вызов функции OrderBy() также может быть вызван для любого IEnumerable, который только что вернул вызов distinct. Он возвращает IOrderedEnumerable(Of Byte), который является подклассом IEnumerable. Это означает, что вы можете обращаться с любым IOrderedEnumerable так же, как если бы это был IEnumerable, что вы и собираетесь делать дальше.
Последняя операция проста. Он преобразует результат OrderBy обратно в массив. Это легко сделать с помощью вызова ToArray. Он создает новый массив из любого IEnumerable.
Сделано. У вас есть свой сортированный, отдельный массив.