07. november 2003 - 10:41Der er
5 kommentarer og 1 løsning
omrokering af array
Hej E. Jeg har denne fede kode:
Dim TestArray() As Integer = {"1", "2", "3", "4", "5"} Dim upperbound As Integer = TestArray.Length Dim random As New System.Random() Dim n As Integer For n = 0 To 4 Dim index As Integer = random.Next(upperbound) lstArrayTest.Items.Add(TestArray(index))
Next
Mit problem er bare at jeg gerne vil have byttet om på rækkefølgen af min ayyay, og ikke have det udskrevet tilfældigt. Er her en som vil give et eks. på hvorledes dette kan udføres :-)
Module Main Sub Main() Dim before() As Integer = { 1, 2, 3, 4, 5 } Dim rng As New System.Random() Dim beforetmp As ArrayList = new ArrayList(before) Dim aftertmp As ArrayList = new ArrayList() Dim n As Integer For n = 0 To (before.Length - 1) Dim index As Integer = rng.Next(beforetmp.Count) aftertmp.Add(beforetmp.Item(index)) beforetmp.RemoveAt(index) Next Dim after(before.Length) As Integer For n = 0 To (before.Length - 1) after(n) = aftertmp.Item(n) Next For n = 0 To (before.Length - 1) Console.WriteLine(after(n)) Next End Sub End Module
Module Main Sub Main() Dim before() As Integer = { 1, 2, 3, 4, 5 } Dim rng As New System.Random() Dim tmp As ArrayList = new ArrayList(before) Dim after(before.Length) As Integer Dim n As Integer For n = 0 To (before.Length - 1) Dim index As Integer = rng.Next(tmp.Count) after(n) = tmp.Item(index) tmp.RemoveAt(index) Next For n = 0 To (before.Length - 1) Console.WriteLine(after(n)) Next End Sub End Module
Jeg har prøvet at beskrive hvad det er din kode gør linje for linje.
Imports System Imports System.Collections
Module Main Sub Main() 'Opretter et array(before) til at holde mine tal Dim before() As Integer = { 1, 2, 3, 4, 5 } 'Opretter et random objekt Dim rng As New System.Random() 'Opretter at array(tmp) som indeholder det samme som before arrayet Dim tmp As ArrayList = new ArrayList(before) 'Opretter en variable som har samme værdig som antallet af tal i before arrayet Dim after(before.Length) As Integer 'Opretter en tæller Dim n As Integer 'kør koden igennem det samme antal gange som antal tal i before For n = 0 To (before.Length - 1) 'dette fatter jeg ikke????? Dim index As Integer = rng.Next(tmp.Count) 'placerer det aktive tal i after arrayet after(n) = tmp.Item(index) 'fjerner tallet som er placeret i arrayet på den plads som index indeholder tmp.RemoveAt(index) Next 'kør koden igennem det antal gange som before indeholder tal For n = 0 To (before.Length - 1) 'udskriv after til cmd promten Console.WriteLine(after(n)) Next 'Denne funktion gør at cmd promten ikke lukker ned efter after er blevet udskrevet. console.readline End Sub End Module
Er det rigtigt forstået?
Jeg fatter ikke denne linje: Dim index As Integer = rng.Next(tmp.Count)
Vil du ikke lige kigge min beskrivelse igennem :-)
Module Main Sub Main() 'Opretter et array(before) til at holde mine tal Dim before() As Integer = { 1, 2, 3, 4, 5 } 'Opretter et objekt til at generere tilfældige tal Dim rng As New System.Random() 'Opretter en array list (tmp) som indeholder det samme som before arrayet Dim tmp As ArrayList = new ArrayList(before) 'Opretter en variable som har samme antal elementer som before arrayet Dim after(before.Length) As Integer 'Opretter en tæller Dim n As Integer 'kør koden igennem det samme antal gange som antal tal i before For n = 0 To (before.Length - 1) 'find et tilfædigt element i tmp Dim index As Integer = rng.Next(tmp.Count) 'flyt det element over i after after(n) = tmp.Item(index) 'fjern elementet så det ikke kan vælges igen tmp.RemoveAt(index) Next 'kør koden igennem det antal gange som before indeholder tal For n = 0 To (before.Length - 1) 'udskriv after til cmd promten Console.WriteLine(after(n)) Next 'Denne funktion gør at cmd promten ikke lukker ned efter after er blevet udskrevet. console.readline End Sub End Module
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.