Как создать запрос, в котором в списке отображается только последнее добавление к текстовому файлу?

#arrays #vb.net #linq

#массивы #vb.net #linq

Вопрос:

Я пытаюсь создать запрос, в котором в списке отображается только последнее бронирование, добавленное в текстовый файл.

Я попытался каким-то образом выбрать первый индекс, но не могу разобраться в этом, поскольку я очень новичок в кодировании

 Dim strBooking() As String = IO.File.ReadAllLines("food.txt")
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles btnLatestBooking.Click

    Dim BookingsQuery = From Booking In strBooking
                        Where Booking = (0)
                        Select Booking

    For Each Booking As String In BookingsQuery
        lstLatestBooking.Items.Add(Booking)
    Next
End Sub
  

Я получаю сообщение об ошибке при запуске моего кода
В этой части кода:

 Where Booking = (0)
  

отображаемый код ошибки

Необработанное исключение типа ‘System.Исключение InvalidCastException’ произошло в Microsoft.VisualBasic.dll

Комментарии:

1. Было ли добавлено «последнее добавление к текстовому файлу» в начало файла или в конец файла?

Ответ №1:

Если вы хотите получить доступ к первой строке в массиве, который вы сгенерировали, прочитав текстовый файл, нет необходимости использовать linq вообще. Вы можете просто сослаться на первую запись в массиве с помощью strBooking(0):

 Dim strBooking() As String = IO.File.ReadAllLines("food.txt")
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles btnLatestBooking.Click

    If strBooking.Length > 0 Then
        lstLatestBooking.Items.Add(strBooking(0))
    End If       
End Sub
  

Вам следует прочитать о массивах.

Если вы хотите сделать это с помощью linq, просто используйте .Первый:

 If strBooking.Length > 0 Then
    lstLatestBooking.Items.Add(strBooking.First())
End If