#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