首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

新手。GetUpperBound(0)

2013-07-08 
新手求助。。GetUpperBound(0)GetUpperBound(0) 具体什么意思啊?能方便举个例子吗 ?我比较笨[解决办法]Array

新手求助。。GetUpperBound(0)
GetUpperBound(0) 具体什么意思啊?
能方便举个例子吗 ?我比较笨
[解决办法]
Array.GetUpperBound 方法

获取 Array 的指定维度的上限。

GetUpperBound(0) 返回 Array 的第一维的索引上限,GetUpperBound(Rank - 1) 返回 Array 的最后一维的上限。
该 GetUpperBound 方法不受数组中元素数的影响(如果数组为空)。 Length 属性的值可以永远不会大于元素允许的数目,其由上限确定。 例如,上限为 10 个元素的数组其长度不能大于 9(0 表示第一个元素)。
此方法的运算复杂度为 O(1)。

语法
Public Function GetUpperBound ( _
dimension As Integer _
) As Integer

例子


Imports System
Imports Microsoft.VisualBasic

Public Class SamplesArray    

    Public Shared Sub Main()

        ' Creates a new one-dimensional Array of type Int32.
        Dim my1DIntArray As Array = Array.CreateInstance(GetType(Int32), 5)

        ' Uses GetLowerBound and GetUpperBound in the for loop.
        Dim i As Integer
        For i = my1DIntArray.GetLowerBound(0) To my1DIntArray.GetUpperBound(0)
            my1DIntArray.SetValue(i + 1, i)
        Next i 
        ' Displays the bounds and values of the one-dimensional Array.
        Console.WriteLine("One-dimensional Array:")
        Console.WriteLine("Rank" + ControlChars.Tab + "Lower" _
           + ControlChars.Tab + "Upper")
        Console.WriteLine("{0}" + ControlChars.Tab + "{1}" _
           + ControlChars.Tab + "{2}", 0, my1DIntArray.GetLowerBound(0), _


           my1DIntArray.GetUpperBound(0))
        Console.WriteLine("Values:")
        PrintValues(my1DIntArray)
        Console.WriteLine()

        ' Creates a new three-dimensional Array of type Int32.
        Dim my3DIntArray As Array = _
           Array.CreateInstance(GetType(Int32), 2, 3, 4)

        ' Uses GetLowerBound and GetUpperBound in the for loop.
        Dim j, k As Integer
        For i = my3DIntArray.GetLowerBound(0) _
        To my3DIntArray.GetUpperBound(0)
            For j = my3DIntArray.GetLowerBound(1) _
            To my3DIntArray.GetUpperBound(1)
                For k = my3DIntArray.GetLowerBound(2) _
                To my3DIntArray.GetUpperBound(2)
                    my3DIntArray.SetValue(i * 100 + j * 10 + k, i, j, k)
                Next k
            Next j 
        Next i

        ' Displays the bounds and values of the multidimensional Array.
        Console.WriteLine("Multidimensional Array:")
        Console.WriteLine("Rank" + ControlChars.Tab + "Lower" _
           + ControlChars.Tab + "Upper")
        For i = 0 To my3DIntArray.Rank - 1
            Console.WriteLine("{0}" + ControlChars.Tab + "{1}" _
               + ControlChars.Tab + "{2}", i, my3DIntArray.GetLowerBound(i), _


               my3DIntArray.GetUpperBound(i))
        Next i
        Console.WriteLine("Values:")
        PrintValues(my3DIntArray)
    End Sub


    Public Shared Sub PrintValues(myArr As Array)
        Dim myEnumerator As System.Collections.IEnumerator = _
           myArr.GetEnumerator()
        Dim i As Integer = 0
        Dim cols As Integer = myArr.GetLength(myArr.Rank - 1)
        While myEnumerator.MoveNext()
            If i < cols Then
                i += 1
            Else
                Console.WriteLine()
                i = 1
            End If
            Console.Write(ControlChars.Tab + "{0}", myEnumerator.Current)
        End While
        Console.WriteLine()
    End Sub
End Class

' This code produces the following output.

' One-dimensional Array:
' Rank    Lower    Upper
' 0    0    4
' Values:
'     1    2    3    4    5

' Multidimensional Array:
' Rank    Lower    Upper
' 0    0    1
' 1    0    2
' 2    0    3
' Values:
'     0    1    2    3
'     10    11    12    13


'     20    21    22    23
'     100    101    102    103
'     110    111    112    113
'     120    121    122    123

热点排行