VB.Net-matriser: streng, dynamisk med EKSEMPLER
Hva er en Array?
En matrise er en datastruktur som brukes til å lagre elementer av samme datatype. Elementene er ordnet sekvensielt med det første elementet ved indeks 0 og det siste elementet ved indeks n-1, hvor n er det totale antallet elementer i matrisen.
Hvordan deklarere og initialisere en matrise
In VB.NET, er matriser deklarert ved å bruke Dim-setningen. For eksempel:
Dim myData() As Integer
I eksemplet ovenfor har vi definert en matrise kalt myData, og den skal inneholde elementer av heltallsdatatypen. Følgende eksempel viser hvordan vi kan erklære en matrise for å inneholde strengelementer:
Dim myData(10) As String
Vi har definert en matrise kalt myData for å inneholde 10 strenger.
Vi kan initialisere arrays på tidspunktet for deres erklæring. For eksempel:
Dim myData() As Integer = {11, 12, 22, 7, 47, 32}
Vi har erklært arrayen myData og lagt til 6 heltallselementer til den. Dette kan også gjøres for strenger:
Dim students() As String = {"John", "Alice", "Antony", "Gloria", "jayden"}
Vi har opprettet en gruppe som heter studenter og lagt til 5 navn til den.
Arrays med fast størrelse
En matrise med fast størrelse inneholder et fast antall elementer. Dette betyr at du må definere antall elementer som den skal inneholde under definisjonen. Anta at du trenger en matrise som bare inneholder 3 studentnavn. Du kan definere og initialisere matrisen som følger:
Dim students(0 to 2) As String students(0) = "John" students (1) = "Alice" students (2) = "Antony"
Vi begynte med å erklære en strenggruppe kalt studenter. 0 til 2 erklærer at matrisen vil lagre elementer fra sin indeks 0 til indeks 2, noe som betyr at vi vil ha 3 elementer totalt.
For å legge til elementer i matrisen har vi brukt matrisenavnet og spesifisert indeksen som elementet skal lagres på. For eksempel vil navnet John bli lagret ved indeks 0 av matrisen, noe som betyr at det vil danne det første elementet i matrisen. Antony vil være det siste elementet i matrisen.
Dynamiske matriser
Dette er en matrise som kan inneholde et hvilket som helst antall elementer. Matrisestørrelsen kan vokse når som helst. Dette betyr at du kan legge til nye elementer til matrisen når som helst vi vil. For å demonstrere dette, la oss først definere en rekke heltall:
Dim nums() As Integer
Vi har definert en heltallsmatrise kalt nums. Du må nå legge til to elementer til matrisen, samtidig som du gir rom for å endre størrelsen på den. Du må bruke ReDim-erklæringen som følger:
ReDim nums(1) nums(0) = 12 nums(1) = 23
Arrayet vårt har nå to elementer i indeksene 0 og 1. Vi må legge til et tredje element til det ved indeks 3 mens vi beholder de to elementene det allerede har. Vi kan gjøre det som følger:
ReDim Preserve nums(2) nums(2) = 35
Matrisen har nå tre elementer.
Hente innholdet i en matrise
Henting betyr å få tilgang til array-elementene. For å få tilgang til et matriseelement bruker vi dets indeks. La oss demonstrere dette ved å bruke et eksempel.
Trinn 1) Begynn med å lage en ny konsollapplikasjon.
Trinn 2) Legg til følgende kode i applikasjonen:
Module Module1 Sub Main() Dim students(0 to 2) As String students(0) = "John" students(1) = "Alice" students(2) = "Antony" Console.WriteLine("First student is {0} ", students(0)) Console.WriteLine("Second student is {0} ", students(1)) Console.WriteLine("Third student is {0} ", students(2)) Console.ReadKey() End Sub End Module
Trinn 3) Kjør koden ved å klikke på Start-knappen fra verktøylinjen. Du får opp følgende vindu:
Vi har brukt følgende kode:
Forklaring av kode:
- Opprette en modul kalt Module1.
- Opprette hovedunderprosedyren.
- Opprette en matrise som heter elever for å lagre strengelementer. Arrayen vil lagre elementer fra indeks 0 til indeks 2, noe som betyr at den vil ha totalt 3 elementer.
- Å legge til navnet John som det første elementet i matrisen, det vil si at John lagret på indeks 0.
- Å legge til navnet Alice som det andre elementet i matrisen, det vil si Alice lagret i indeks 1.
- Å legge til navnet Antony som det tredje elementet i matrisen, det vil si Antony lagret i indeks 2.
- Skriver ut litt tekst og elementet som er lagret på indeks 0 av array-studentene på konsollen. Studentene(0) hjelper oss med å få tilgang til elementet ved indeks 0 for arrayen navngitte studenter.
- Skriver ut litt tekst og elementet som er lagret på indeks 1 av array-studentene på konsollen. Studentene(1) hjelper oss med å få tilgang til elementet ved indeks 1 for arrayen navngitte studenter.
- Skriver ut litt tekst og elementet som er lagret på indeks 2 av array-studentene på konsollen. Studentene(2) hjelper oss med å få tilgang til elementet ved indeks 2 for arrayen navngitte studenter.
- Setter konsollvinduet på pause som venter eller brukeren tar handling for å lukke det.
- Slutt på underprosedyren.
- Slutt på modulen.
Legge til nye elementer i en matrise
Dette vil bare skje hvis du har en dynamisk matrise. Hvis du hadde erklært en dimensjonal matrise med fast størrelse og den er full av matriseelementer, kan du ikke legge til nye elementer til den. Følgende eksempel viser hvordan du legger til nye elementer i en dynamisk matrise:
Trinn 1) Begynn med å lage en ny konsollapplikasjon.
Trinn 2) Legg til følgende kode i applikasjonen:
Module Module1 Sub Main() Dim nums() As Integer ReDim nums(1) nums(0) = 12 nums(1) = 23 For x = 0 To nums.Length - 1 Console.WriteLine("Initial array element: {0}", nums(x)) Next ReDim Preserve nums(2) nums(2) = 35 For x = 0 To nums.Length - 1 Console.WriteLine("Final array element: {0}", nums(x)) Next Console.ReadKey() End Sub End Module
Trinn 3) Klikk på Start-knappen fra verktøylinjen for å kjøre koden. Du bør få opp følgende vindu:
Vi har brukt følgende kode:
Forklaring av kode:
- Opprette en modul kalt Module1.
- Opprette hovedunderprosedyren.
- Opprette en matrise kalt nums for å inneholde heltallsverdier.
- Spesifiserer at arrayen ovenfor vil lagre to elementer, det vil si ved indeks 0 og 1 mens det gir rom for å endre størrelse.
- Legge til elementet 12 til indeksen 0 for matrisenumre.
- Legge til elementet 23 til indeksen 1 for matrisenumre.
- Bruke en for-løkke for å lage en variabel x for å hjelpe oss med å iterere fra det første til det siste elementet i array-numrene. Merk at matrisen nå har to elementer, 12 og 23.
- Skriver ut litt tekst og elementene i arrayet på konsollen.
- Avslutter for-løkken og hopper til neste del av koden.
- Endre størrelsen på array-numrene for å tillate elementer ved indeksene 0 til 2. Den vil nå kunne lagre 3 elementer i stedet for 2. Bevar nøkkelordet hjelper oss å opprettholde de gjeldende elementene i arrayen, det vil si 12 og 23.
- Legge til elementet 35 til indeks 2 av matrisen. Matrisen har nå tre elementer, 12, 23 og 35.
- Bruke en for-løkke for å lage en variabel x for å hjelpe oss med å iterere fra det første til det siste elementet i array-numrene. Merk at matrisen nå har tre elementer, 12, 23 og 35.
- Skriver ut litt tekst og elementene i arrayet på konsollen.
- Avslutter for-løkken og hopper til neste del av koden.
- Sett konsollvinduet på pause mens du venter på at brukeren skal gjøre noe for å lukke det.
- Slutt på underprosedyren.
- Slutt på modulen.
Sletting av en matrise
Det anbefales at du sletter matrisen etter at du er ferdig med den, for det meste når du har å gjøre med en dynamisk matrise. Dette vil hjelpe deg å frigjøre litt minneplass.
For å slette en matrise, må du bare ringe Erase-setningen etterfulgt av navnet på matrisen. For eksempel:
Dim nums(1) As Integer nums(0) = 12 nums(1) = 23 Erase nums
Vi har erklært en rekke heltall kalt tall og lagt til to elementer til den. Erase nums-setningen vil slette matrisen.
Split-funksjonen
Delingsfunksjonen som leveres av Visual Basic .NET hjelper oss å dele en streng i deler og holde dem i en matrise. Følgende eksempel viser hvordan du bruker denne funksjonen:
Trinn 1) Opprett en ny konsollapplikasjon.
Trinn 2) Legg til følgende kode i applikasjonen:
Module Module1 Sub Main() Dim myarray() As String Dim guru99 As String Dim x As Integer guru99 = "Welcome, to, Guru99" myarray = Split(guru99, ", ") For x = LBound(myarray) To UBound(myarray) Console.WriteLine(myarray(x)) Next Console.ReadKey() End Sub End Module
Trinn 3) Kjør koden ved å klikke på Start-knappen fra verktøylinjen. Du bør få opp følgende vindu:
Vi har brukt følgende kode:
Forklaring av kode:
- Opprette en modul kalt Module1.
- Starter hovedunderprosedyren.
- Opprette en matrise kalt myarray for å holde strengverdier.
- Opprette en strengvariabel kalt guru99.
- Opprette en heltallsvariabel kalt x.
- Tilordne en streng til variabelen guru99.
- Deler opp strengen over i deler og plasser dem i arrayen kalt myarray. "," (komma) er skilletegnet, derfor vil split-funksjonen bruke den til å markere slutten på de forskjellige delene av strengen.
- Bruke variabelen x til å iterere gjennom matrisen kalt myarray. LBound og UBound spesifiserer henholdsvis nedre grenser og øvre grenser for matrisen.
- Skriver ut verdiene til matrisen kalt myarray på konsollen.
- Slutter for loop og
Bli med funksjonen
Sammenføyningsfunksjonen hjelper oss med å slå sammen flere matriser i en enkelt streng. Følgende eksempel viser dette:
Trinn 1) Begynn med å lage en ny konsollapplikasjon.
Trinn 2) Legg til følgende kode i applikasjonen:
Module Module1 Sub Main() Dim students(0 To 2) As String students(0) = "John" students(1) = "Alice" students(2) = "Antony" Dim classmates As String classmates = Join(students, ", ") Console.WriteLine(classmates) Console.ReadKey() End Sub End Module
Trinn 3) Kjør koden ved å klikke på Start-knappen på verktøylinjen:
Vi har brukt følgende kode:
Forklaring av kode:
- Opprette en modul kalt Module1.
- Opprette hovedunderprosedyren.
- Opprette en matrise med navn på elever for å inneholde 3 strengverdier.
- Legge til navnet John til indeksen 0 for matrisen.
- Legge til navnet Alice til indeksen 1 av matrisen.
- Legge til navnet Antony til indeksen 2 av matrisen.
- Definere en variabel kalt klassekamerater av strengdatatypen.
- Slå sammen alle elementene til array-elevene og skille dem ved hjelp av et , (komma). Resultatet av denne operasjonen vil bli tildelt de variable klassekameratene.
- Skrive ut innholdet i klassekameratvariabelen på konsollen.
- Setter konsollvinduet på pause og venter på at brukeren skal gjøre noe for å lukke det.
- Avslutter hoveddelprosedyren.
- Avslutter modulen.
Oppsummering
- Matriser brukes til å lagre dataelementer som tilhører samme data-type.
- En dynamisk matrise lar brukeren endre størrelsen på den ved å legge til flere elementer i den. Du bruker kommandoen ReDim for å legge til elementer i en eksisterende matrise
- Størrelsen på en matrise med fast størrelse kan ikke endres.
- Matriseelementene er ordnet ved hjelp av indekser, med det første elementet ved indeks 0 og det siste elementet ved indeks n-1, hvor n er det totale antallet matriseelementer.
- Matriser kan slettes ved hjelp av Erase-funksjonen
- Du kan bruke split- og join-funksjoner for å dele eller slå sammen en strengmatrise