2014-01-26 4 views
0

Мне было интересно, если бы в Visual Basic было все равно, чтобы проверить длину CURRENT массива, который был объявлен и инициализирован фиксированным номером, но может содержать или не иметь никаких данных, хранящихся в нем. напримерДлина массива с фиксированным индексом

Dim arrayStudent As String(3) = {}

представляет собой массив с 3-мя индексами, но без каких-либо текущих данных, и если бы я использовал arrayStudent.length, то это будет не быть «3» ни на что.

Я пытаюсь настроить, если оператор, который позволит входное текстовое поле в мой для цикла, если текущая длина меньше 3.

+0

У вас вопрос непонятен! –

ответ

4

Там нет такого понятия, как «текущая длина». Он имеет три элемента с самого начала. Все они имеют значение Nothing, чтобы начать с, но длина еще 3.

Если вы пытаетесь подсчитать, сколько не-Nothing элементов в массиве, можно использовать LINQ:

Dim count = arrayStudent.Count(Function(x) x IsNot Nothing) 

но, честно говоря, вы бы лучше с помощью List(Of String) вместо ...

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

Public Class Test 
    Public Shared Sub Main() 
     Dim arrayStudent(3) As String 
     Dim count = arrayStudent.Count(Function(x) x IsNot Nothing) 
     Console.WriteLine(count) 
     arrayStudent(1) = "Fred" 
     count = arrayStudent.Count(Function(x) x IsNot Nothing) 
     Console.WriteLine(count) 
    End Sub 
End Class 
Смежные вопросы