Всего несколько изменений в Very Good answer @ JustShadow
Моё первое изменение - изменить поля классов на Public Property
.Классы любят хранить свои данные рядом с жилетом в приватных полях.Они предоставляют свои данные миру через Свойства.Теперь у нас есть автоматические свойства, просто объявив переменную как свойство.Компилятор напишет нам поля Get, Set и Private.Конечно, вы все равно можете записать его, если вам нужен дополнительный код в Get или Set.
Также в классе изменен Deadline на Date.Если бы приложение было расширено, где данные были сохранены и повторно использованы, число не сработало бы, но дата сработала бы.
Далее я бы не стал ограничивать количество добавляемых домашних заданий.Просто добавьте Да / Нет в конце цикла.
Я изменил цикл For на For Each, так как у нас есть IEnumerable.Нет необходимости возвращаться к списку.Я также упростил отображаемый код с помощью интерполированной строки.
Public Class Homework
Public Property Subject As String
Public Property Description As String
Public Property Deadline As Date
End Class
Sub Main()
Dim allHomeworks As New List(Of Homework)()
Do
Dim h As New Homework
Console.WriteLine("Enter subject ")
h.Subject = Console.ReadLine()
Console.WriteLine("Enter description ")
h.Description = Console.ReadLine()
Console.WriteLine("Enter Date Due ")
h.Deadline = CDate(Console.ReadLine())
' Add newly created homework to the list
allHomeworks.Add(h)
Console.WriteLine("Are you finished? Yes/No")
If Console.ReadLine.ToLower = "yes" Then Exit Do
Loop
Dim sorted = allHomeworks.OrderBy(Function(x) x.Deadline)
For Each h As Homework In sorted
Console.WriteLine($"Date Due: {h.Deadline}, Subject: {h.Subject}, Description: {h.Description}")
Next
Console.ReadLine()
End Sub