溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

VB.NET使用數(shù)組的方法和技巧

發(fā)布時(shí)間:2021-06-21 14:21:07 來源:億速云 閱讀:852 作者:chen 欄目:編程語言

本篇內(nèi)容介紹了“VB.NET使用數(shù)組的方法和技巧”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

一.VB.NET使用數(shù)組主要內(nèi)容:

在接下來內(nèi)容中,將結(jié)合具體示例來詳細(xì)的介紹下列知識(shí)點(diǎn):

1. 申明數(shù)組,其中包括一維數(shù)組、多維數(shù)組,也包括靜態(tài)數(shù)組和動(dòng)態(tài)數(shù)組,及其初始化。和訪問數(shù)組中的元素。

2. 重新申明數(shù)組,即ReDim語句的使用用法,及其Preserve關(guān)鍵字的作用。

3. 使用For Each …. Next語句來遍歷數(shù)組中各個(gè)元素,F(xiàn)or Each …. Next語句是操作數(shù)據(jù)最為常用的一種語句,它能夠方便的訪問到數(shù)組中的每一個(gè)元素。

4. 申明參數(shù)為數(shù)組的過程或者函數(shù),由于數(shù)組是引用類型,所以在申明參數(shù)為數(shù)組的函數(shù)或過程時(shí),處理方法與參數(shù)為值類型的函數(shù)或過程有點(diǎn)不一樣。

5. 簡要介紹Array類和其主要的常用,以及通過Array類操作數(shù)組的具體方法。

二.申明、初始化數(shù)組和訪問數(shù)組中的元素:

在VB.NET使用數(shù)組中一個(gè)聲明的依然是Dim語句,其申明數(shù)組和Visual Basic的主要區(qū)別在上面內(nèi)容中已經(jīng)簡單說過了。下面在Visual Basic .Net申明一個(gè)長度為“3”的字符串?dāng)?shù)組,并對(duì)之進(jìn)行初始化的代碼:

Dim arrString ( 2 ) As String = {"星期一","星期二","星期三"}

下面代碼是申請(qǐng)一個(gè)2×2的二維字符串?dāng)?shù)組,并對(duì)之進(jìn)行初始化:

Dim arrDate ( 1, 1 ) As String = {{"星期一", "18號(hào)"}, {"星期二", "19號(hào)"}}

靜態(tài)數(shù)組和動(dòng)態(tài)數(shù)組的區(qū)別就在于靜態(tài)數(shù)組的長度是固定的,而動(dòng)態(tài)數(shù)組的長度是不固定的。上面的申明的二個(gè)數(shù)組就是靜態(tài)數(shù)組,而下面二段代碼的作用就是分別申明一個(gè)一維數(shù)組和二維數(shù)組,并對(duì)它們進(jìn)行初始化:

  1. Dim arrString ( ) As String =
     {"星期一","星期二","星期三"}  

  2. '申明一個(gè)動(dòng)態(tài)的一維數(shù)組,并初始化  

  3. Dim arrDate ( , ) As String = 
    {{"星期一", "18號(hào)"}, {"星期二", 
    "19號(hào)"}}  

  4. '申明一個(gè)動(dòng)態(tài)的二維數(shù)組,并初始化 

對(duì)其他數(shù)據(jù)類型和更多維數(shù)的數(shù)組,其申明和初始化方法和上面的基本差不多,只需根據(jù)數(shù)組的維數(shù)和數(shù)據(jù)類型的不同進(jìn)行相應(yīng)的修改就可以了。

當(dāng)數(shù)組申明和初始化以后,就可以通過元素在數(shù)組中對(duì)應(yīng)的索引值來訪問,下面二段VB.NET使用數(shù)組代碼分別是訪問上面申明并初始化的一維數(shù)組和二維數(shù)組中的一個(gè)元素:

  1. Dim sTemp1 As String = 
    arrString ( 1 )  

  2. '訪問arrString數(shù)組中的第2個(gè)元素  

  3. Dim sTemp2 As String = 
    arrDate ( 1 , 1 )  

  4. '訪問arrDate數(shù)組中的第二行、
    第二列元素 

三.在VB.NET使用數(shù)組中重新申明數(shù)組:

在Visual Basic .Net重新申明數(shù)組和Visual Basic中基本類似,依然使用的是ReDim語句。在Visual Basic .Net中使用ReDim語句要注意以下三點(diǎn):

1. ReDim語句僅可以在過程級(jí)出現(xiàn)。這意味著不可以在類或模塊級(jí)代碼區(qū)使用ReDim語句來重新申明數(shù)組。

2. ReDim語句只是更改已被正式聲明的數(shù)組的一個(gè)或多個(gè)維度的大小,但不能更改該數(shù)組的維數(shù)。

3. ReDim語句無法更改數(shù)組中元素的數(shù)據(jù)類型,和Dim語句申明數(shù)組的區(qū)別在于無法在ReDim語句中初始化重新申明的數(shù)組。

在使用ReDim重新申明數(shù)組時(shí),最為常見的關(guān)鍵字就是“Preserve”?!癙reserve”的作用是表明在重新申明數(shù)組時(shí),是否要在重新申明的數(shù)組中復(fù)制原數(shù)組中的元素。請(qǐng)比較下面二段代碼:

代碼一:

  1. Dim arrString ( 2 ) As String =
     {"星期一","星期二","星期三"}  

  2. ReDim Preserve arrString ( 4 )  

  3. '重新申明arrString數(shù)組,數(shù)組的長
    度改為5,并且在新數(shù)組中復(fù)制原數(shù)組的元素  

  4. arrString ( 3 ) = "星期四"  

  5. arrString ( 4 ) = "星期五" 

代碼二:

  1. Dim arrString ( 2 ) As String =
     {"星期一","星期二","星期三"}  

  2. ReDim arrString ( 4 )  

  3. '重新申明arrString數(shù)組,數(shù)組的長
    度改為5,并不往新數(shù)組中復(fù)制原數(shù)組的元素  

  4. arrString ( 0 ) = "星期一"  

  5. arrString ( 1 ) = "星期二"  

  6. arrString ( 2 ) = "星期三"  

  7. arrString ( 3 ) = "星期四"  

  8. arrString ( 4 ) = "星期五" 

通過比較上述二段代碼,可見,在***段代碼中由于ReDim中使用了Preserve關(guān)鍵字,所以在重新申明數(shù)組時(shí),就在新數(shù)組中復(fù)制了原數(shù)組的元素,這樣就只需要對(duì)其中的二個(gè)元素進(jìn)行初始化;而第二段由于沒有使用Preserve關(guān)鍵字,就沒有在新數(shù)組中帶入原數(shù)組中的任何元素,所以對(duì)數(shù)組的所有元素都進(jìn)行初始化。通過比較相信您對(duì)重新定義數(shù)組和“Preserve”關(guān)鍵字的使用有了更深的理解。



四.For Each …. Next語句在VB.NET使用數(shù)組中的作用:

For Each …. Next語句好像只是為二種數(shù)據(jù)類型專門度身定做的,其一就是集合,另外一個(gè)就是數(shù)組了。通過For Each …. Next語句,可以十分方便的訪問數(shù)組中的任一元素。請(qǐng)仔細(xì)分析一下下列代碼:

  1. Dim arrString ( 2 ) As String = 
    {"星期一","星期二","星期三"}  

  2. Dim Temp As String  

  3. For Each Temp In arrString  

  4. If Temp = "星期三" Then  

  5. MsgBox ( "在數(shù)組中尋找到"
    "星期三""字符串")  

  6. Exit For  

  7. '退出For Each …. Next語句  

  8. End If  

  9. Next 

上面代碼的功能是通過For Each …. Next語句訪問arrString數(shù)組中各元素,如果發(fā)現(xiàn)有元素為字符串“星期三”,則彈出提示框,并退出循環(huán)。

同樣用For … Next語句也能夠?qū)崿F(xiàn)上面同樣的功能,只是感覺有點(diǎn)不專業(yè),并且有點(diǎn)繁瑣,下面代碼是用For … Next語句實(shí)現(xiàn)上面For Each …. Next語句同等功能的代碼:

  1. Dim i As Integer  

  2. For i = 0 To myString.
    Length - 1  

  3. If arrString ( i ) = 
    "星期三" Then  

  4. MsgBox ( "在數(shù)組中尋找到"
    "星期三""字符串" )  

  5. Exit For  

  6. End If  

  7. Next 

五.申明參數(shù)為數(shù)組的過程或者函數(shù):

由于VB.NET使用數(shù)組為引用類型,所以如果以數(shù)組為參數(shù)過程和函數(shù)在定義時(shí)候就要多加以注意,下面代碼是在Visual Basic .Net申明一個(gè)參數(shù)為數(shù)組的過程的典型代碼,可見在調(diào)用數(shù)組類型之前多了一個(gè)關(guān)鍵字“ByVal”,“ByVal”關(guān)鍵字的作用在于在下面調(diào)用的過程中的不能更改數(shù)組的數(shù)值:

  1. Sub DisplayArray 
    ( ByVal myString ( ) 
    As String )  

  2. End Sub 

六.簡要介紹System.Array類及其成員:

Array類是一個(gè)基類,是公共語言運(yùn)行庫中所有數(shù)組的基類。它提供了創(chuàng)建、操作、搜索和排序數(shù)組的方法。數(shù)組中任一個(gè)元素就是Array中的一個(gè)值。 Array的長度是它可包含的元素總數(shù)。Array的秩是Array中的維數(shù)。Array中維度的下限是Array 中該維度的起始索引,多維Array的各個(gè)維度可以有不同的界限。表01和表02分別是Array類的常用屬性和常用方法及其說明: 

七.一個(gè)VB.NET使用數(shù)組的具體示例:

下面介紹的示例的功能包含了數(shù)組的申明、初始化、重新申明、重新初始化、數(shù)組中各元素的排序、數(shù)組的遍歷、查找以及以數(shù)組為參數(shù)的過程的定義及調(diào)用方法等。下面是此示例實(shí)現(xiàn)的具體步驟:

1. 啟動(dòng)Visual Studio .Net。

2. 選擇菜單【文件】|【新建】|【項(xiàng)目】后,彈出【新建項(xiàng)目】對(duì)話框。

3. 將【項(xiàng)目類型】設(shè)置為【Visual Basic項(xiàng)目】。

4. 將【模板】設(shè)置為【W(wǎng)indows應(yīng)用程序】。

5. 在【名稱】文本框中輸入【數(shù)組】。

6. 在【位置】的文本框中輸入【E:\VS.NET項(xiàng)目】,然后單擊【確定】按鈕,這樣在“E:\VS.NET項(xiàng)目”目錄中就產(chǎn)生了名稱為“數(shù)組”的文件夾,并在里面創(chuàng)建了名稱為【數(shù)組】的項(xiàng)目文件。

7. 把Visual Studio .Net的當(dāng)前窗口切換到【Form1.vb(設(shè)計(jì))】窗口,并從【工具箱】中的【W(wǎng)indows窗體組件】選項(xiàng)卡中往Form1窗體中拖入下列組件,并執(zhí)行相應(yīng)操作:

四個(gè)Button組件,分別用來創(chuàng)建一個(gè)“創(chuàng)建一維數(shù)組”、創(chuàng)建“創(chuàng)建二維數(shù)組”、實(shí)現(xiàn)對(duì)“對(duì)一維數(shù)組排序”和實(shí)現(xiàn)“重定義一維數(shù)組”。并在這四個(gè) Button組件拖入Form1的設(shè)計(jì)窗體后,分別雙擊這四個(gè)組件,這樣系統(tǒng)會(huì)在Form1.vb文件分別產(chǎn)生這四個(gè)組件的Click時(shí)間對(duì)應(yīng)的VB.NET使用數(shù)組處理代碼。

“VB.NET使用數(shù)組的方法和技巧”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI