2014-02-17 4 views
0

Предположим, что массив состоит из значений:Array.sort() не работает должным образом

dim arrnum() as integer=nothing 

arrnum состоит из значений (3,8,6,15,2,10)

while using Array.sort(arrnum) 

valuse сортируются как путь. (10,15,2,3,6,5)

На самом деле мне нужны значения отсортированным способом.

Можете ли вы мне помочь?

+4

Вы сортируете массив строк. Если вам нужен целочисленный массив, сделайте его целым. Покажите свой код. –

+0

Похоже, у вас на самом деле есть строковый массив, а не целочисленный массив; однако: 'при использовании Array.sort (arrnum)' - что это значит? –

ответ

0

Предполагая, что ваш отсортированный массив на самом деле 10, 15, 2, 3, 6, 8 (т. Е. Содержащий те же элементы, что и у оригинала), похоже, что он сортирует лексикографически (причудливый способ сказать сортировку строк, а не числовую сортировку).

Другими словами, 10 и 15 меньше, чем 2 если вы сортировкой на основе символьных данных, так как 1 меньше 2.

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

0

Я думаю, что у вас есть какие-либо ошибки, чтобы определить массив Take смотрите ниже код этого работал

Dim arrnum() As Integer = Nothing 
arrnum = {3, 8, 6, 15, 2, 10} 
Array.Sort(arrnum) 
0

Unsuprisingly, код

Sub Main 
    Dim array = {3, 8, 6, 15, 2, 10} 
    System.Array.Sort(array) 
    Console.WriteLine(String.Join(", ", array)) 
    Console.ReadKey() 
End Sub 

работает полностью, как я бы ожидать.

Вы что-то делаете неправильно.

Прежде чем мы сможем вам помочь, вам нужно точно показать, что вы делаете.

Я тянул, чтобы предложить вам сортировку массива String но 6 и 5 в результатах перепутаны для алфавитного порядка. Обратите внимание, что значение 5 даже не присутствует в исходном массиве. Дополнительный, Array.Sort ничего не возвращает, поэтому nothing перейдет на using или while.

Смежные вопросы