Maciej Los
Кажется, вы очень начинающий...
Как я уже упоминал в комментарии к этому вопросу, нет никакой возможности сравнивать строки так же, как целые числа. Вы должны использовать правильный тип данных[^].
Одним из способов сортировки массива является использование В LINQ[^]. Видеть:
Dim iGrades() As Integer = {10, 33, 40, 50, 22, 33}
Dim result = iGrades _
.OrderByDescending(Function(x) x) _
.GroupBy(Function(x) x) _
.Select(Function(grp, iterator) New With _
{ _
.Index = iterator + 1, _
.Values = String.Join(", ", grp.Select(Function(x) x)) _
}) _
.ToList()
For Each g In result
Console.WriteLine("{0} - {1}", g.Index, g.Values)
Next
Результат:
1 - 50
2 - 40
3 - 33, 33
4 - 22
5 - 10
Просмотр слов о приведенном выше запросе Linq:
.OrderByDescending()
- сортировка данных в порядке убывания
GroupBy()
- создает группы одинаковых значений
Select()
- создает новый набор данных, где
iterator
используется для получения индекса для каждой группы.
Обратите внимание, что когда вы пытаетесь отсортировать стрины, результат может отличаться. Проверить это:
Dim sGrades() As String = {"10", "33", "40", "50", "22", "33", "11", "1", "111"}
Dim result = sGrades _
.OrderByDescending(Function(x) x) _
.GroupBy(Function(x) x) _
.Select(Function(grp, iterator) New With _
{ _
.Index = iterator + 1, _
.Values = String.Join(", ", grp.Select(Function(x) x)) _
}) _
.ToList()
For Each g In result
Console.WriteLine("{0} - {1}", g.Index, g.Values)
Next
Результат:
1 - 50
2 - 40
3 - 33, 33
4 - 22
5 - 111
6 - 11
7 - 10
8 - 1
Взгляните на выделенные жирным шрифтом и подчеркнутые "цифры"!
Но...
Вы должны начать с основ:
Массивы в Visual Basic[
^]
Как отсортировать массив в Visual Basic[
^]
Алгоритмы сортировки в VB[
^]
SamuelDexter
Прежде всего, я не" очень новичок", я кодирую с vb6. Вот доказательство. http://www.softpedia.com/publisher/SoftReckon-LLC-Samuel-Dexter-Yeboah-Gaisie-59052.html
это оплошность, поверь мне. Я печатаю прямо с мобильного телефона, а не копию моего основного кода проекта. Я знаю, что u должен был назначить целое число моей переменной, так как я работаю с числами. Я даже пытался отредактировать сообщение, но просто не могу найти кнопку редактирования.