У меня есть массив байтов, объявленный:Получить общее число элементов в рваной массиве
Dim commands As Byte()()
Массив позже заполнен кучей байтовых значений, в моем текущем тесте это приводит к прямоугольным 3x3 array (прямолинейность совпадена, массив может содержать байтовые массивы любой длины).
commands = New Byte(3)(){}
'...
commands(i) = GetBytes(x)
Позже я хотел бы получить счетчик общего количества байтов в массиве с зубчатым контуром. Я предположил, Array.Length
бы это сделать, поскольку это описание говорит
Общее количество элементов во всех размерах массива
Однако, это, кажется, на самом деле быть возвращающейся только 4; счетчик первого измерения массива, то есть GetLength(0)
или количество строк. Array.Count
также возвращает то же самое (т. Е. 3).
Правильно ли я понял, что нужно вернуть Array.Length
? Если да, то почему он не возвращает 9?
P.S: Я попытался с другими массивами размера и Length
, безусловно, возвращение GetLength(0)
Образцы на странице MSDN, на которую вы ссылаетесь, используют 1-2-3d массивы, а не массивы с зазубринами. Похоже, вы ожидаете, что он сканирует * содержимое *, чтобы подсчитать эти элементы? – Plutonix
@Plutonix Hmph, да, своего рода! XD Итак, в основном тип массива в VB действительно такой же глупый, как внутренний тип? – Toby
В трехмерном массиве эти другие измерения на самом деле являются частью объекта массива (т.е. команд), а не в массиве с зазубринами. в этом случае они всего лишь содержание – Plutonix