Cамоучитель по VB.NET

Массивы


В VB .NET имена массивов должны подчиняться тем же правилам, что и имена переменных. Ссылка на элемент массива выглядит как имя массива, за которым в круглых скобках указывается индекс.

Массивы VB .NET во многом отличаются от массивов VB6. Одни изменения видны сразу, другие не столь очевидны. Наиболее заметные изменения перечислены ниже.

  • Индексация-элементов в массивах начинается с 0. На момент написания книги ключевое слово То не поддерживалось — будем надеяться, что оно еще вернется!

    Начиная с бета-версии 2 объявление 01m stri ngLi st(7) создает массив из восьми элементов с индексами от 0 до 7. Поскольку в VB .NET индексация всегда начинается с нуля, третий элемент массива обозначается stri ngList(2), а предшествующие элементы обозначаются stringList(0) и stringList(l).

  • Все массивы VB .NET являются динамическими. Во время работы программы их можно переобъявить с новым размером при помощи команд ReDim (с потерей текущего содержимого) и ReDim Preserve (с сохранением текущего содержимого). Пример:

    Dim x() As Single

    ReDim x(20) ' Начиная с бета-версии 2. создает массив из 21 элемента

    ReDim Preserve x(50) ' 21 элемент сохраняется в массиве.

Команда ReDim не позволяет изменять тип массива; также не допускается использование ReDim при объявлении. Перед вызовом ReDim массив должен быть объявлен при помощи Dim или аналогичной команды.

  • Массивы могут инициализироваться при объявлении, как показывает следующий пример:

Dim weekend() As String = {Saturday. Sunday}



Менее очевидные изменения обусловлены тем, что массивы VB .NET являются экземплярами класса Array. Подробности будут рассмотрены в главе 4, а пока достаточно указать, что это позволяет выполнять операции с массивами вызовом методов класса Array. Ниже продемонстрирован пример сортировки массива методом Sort:

Sub Main()

Dim stuff() As Integer = (9. 7, 5, 4, 2. 1, -37, 6}

Array.Sort(stuff)

Dim i As Integer

For i = 0 To UBound(stuff)

Console.WriteLine(stuff(i))

Next

Console. ReadLine()

End Sub

Программа выводит массив, отсортированный с применением чрезвычайно эффективного алгоритма «быстрой сортировки».

VB.NET наследует от .NET Framework некоторые очень полезные структуры данных, возможности которых выходят далеко за рамки обычных массивов. На фоне этих структур коллекции VB5 и последующих версий выглядят примитивно. В частности, списковые массивы (с динамически изменяемыми размерами) и ассоциативные массивы (с доступом к данным по ключу) часто оказываются удобнее обычных массивов. Многие из новых структур данных рассматриваются в главах 5 и 6.



Содержание раздела