inherit Skrevet 1. april 2005 Del Skrevet 1. april 2005 Er det noen som vet hvordan man kan sortere ett array i stigende rekkefølge sånn som dette? tekst1 tekst2 tekst4 tekst7 tekst10 tekst15 tekst20 Jeg har testet en god del. Og dette er det jeg har til nå: Dim fil() As String = {"tekst1", "tekst20", "tekst2", "tekst15", "tekst10", "tekst4", "tekst7"} Array.Sort(fil) For i As Integer = 0 To fil.GetUpperBound(0) Console.WriteLine(fil(i)) Next Koden over gir resultatet: tekst1 tekst10 tekst15 tekst2 tekst20 tekst4 tekst7 Dette ser vi at ikke stemmer med "vanlig tellemåte". Her kommer 10 før 2. Noen som har noen ideer til hvordan jeg kan løse problemet? Lenke til kommentar
ilpostino Skrevet 2. april 2005 Del Skrevet 2. april 2005 (endret) Dette ser vi at ikke stemmer med "vanlig tellemåte". Her kommer 10 før 2. Noen som har noen ideer til hvordan jeg kan løse problemet? det er (merkelig nok) fordi tallet 1 kommer før 2.. så maskinen sorterer tallene i rekkefølgen 1x, 2x, 3x osv... Endret 2. april 2005 av ilpostino Lenke til kommentar
inherit Skrevet 2. april 2005 Forfatter Del Skrevet 2. april 2005 det er (merkelig nok) fordi tallet 1 kommer før 2.. så maskinen sorterer tallene i rekkefølgen 1x, 2x, 3x osv... Har funnet ut det ja. Er faktisk ikke så dum.. Hehe... Men er det noen som kan hjelpe med å sortere stringene i riktig rekkefølge? Lenke til kommentar
enden Skrevet 2. april 2005 Del Skrevet 2. april 2005 Så lenge det er tekststrenger som skal sorteres så må du nesten belage deg på å skrive 01, 02, osv. Eventuelt kan du lage deg en sorteringsmetode som plukker fra hverandre tekst og tall, men den frykter jeg kan bli litt stygg... Lenke til kommentar
Gråskjegg Skrevet 4. april 2005 Del Skrevet 4. april 2005 Enkelt nok; implementer IComparer. Omtrent slik: public namespace Blah { public class Compare : IComparer { int IComparer.Compare( Object x, Object y ) { // 5 er lengden av 'tekst' int num1 = int.Parse((string)x).SubString(5, ((string)x).Lenght-5); int num2 = int.Parse((string)y).SubString(5, ((string)y).Lenght-5); return num2 - num1; // eller noe slikt } } } og kall deretter sort med en instans av den klassen. Pseudokode, vil sannsynligvis verken kompilere eller virke - men et startpunkt. Flere eksempler og forklaringer på MSDN help - grå - Lenke til kommentar
inherit Skrevet 4. april 2005 Forfatter Del Skrevet 4. april 2005 Takk for hjelpa, men jeg fikk det til på en anna måte som ligner litt på din før jeg så posten Lenke til kommentar
ntec Skrevet 15. november 2005 Del Skrevet 15. november 2005 Takk for hjelpa, men jeg fikk det til på en anna måte som ligner litt på din før jeg så posten 3949157[/snapback] hvordan var den da? post den;) Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå