[C#] Waarde zoeken in 1-dimensionale array

Pagina: 1
Acties:

  • Keess
  • Registratie: Augustus 2006
  • Laatst online: 27-11 08:21
Hallo,

Ik heb een array:
C#:
1
string[] sfArray = new string[35];


Nu vul ik die met gegevens uit een textbestand in een while lus, elke lijn heeft dit formaat:
property=value

Nu split ik deze lijn in de while lus zodat ik de property en value krijg, nu zet ik deze per lijn in de array, op plaats 0,1 => 2,3 => 4,5 zodat als ik dus een property zoek zoals bijv. "proptype" de eerst volgende index de value van die property is..
C#:
1
2
3
4
5
6
7
                if (Splitted.Length == 2)
                {
                    sfArray[i] = Splitted[0];
                    i++;
                    sfArray[i] = Splitted[1];
                    i++;
                }


Maar nu wil ik zoeken m.b.v. BinarySearch(), maar er wordt geen enkele waarde gevonden, nu kwam ik erachter dat die array eerst ge'Sort()' moest worden, dan werkt het prima, alleen klopt de logica van "4 de property, 5 de waarde etc." niet meer doordat alles 'door de war' staat..
C#:
1
2
3
4
5
6
7
            Array.Sort(sfArray);
            int sIndex = Array.BinarySearch(sfArray, "model");
            if (sIndex >= 0)
            {
                // Zoals hieronder zou het moeten werken, hier klopt nu de value dus niet.
                MessageBox.Show(sfArray[sIndex].ToString() + " gevonden. Value = " + sfArray[sIndex + 1].ToString());
            }


(misschien is dit allemaal wel veel te omslachtig, maar het gaat erom dat ik de propery/value waardes die bijelkaar horen later kan uitlezen.)

Een ander idee is misschien om in de While lus de property te matchen in een Switch blok, maar dat heeft voor mij weer nadelen...

Dus mijn vraag, kan ik zoeken in deze array zonder dat ie niet gesort hoeft te worden?

Bij voorbaat dank,

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 08:30

gorgi_19

Kruimeltjes zijn weer op :9

Geen optie om alles in een dictionary / hashtable te stoppen?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 07:20

.oisyn

Moderator Devschuur®

Demotivational Speaker

Keess schreef op donderdag 19 april 2007 @ 15:10:
Dus mijn vraag, kan ik zoeken in deze array zonder dat ie niet gesort hoeft te worden?
Wat is er zo moeilijk aan lineair over de array heenlopen totdat je het juiste element tegenkomt? Dit natuurlijk nog even afgezien van het feit dat je datastructuur gewoon ruk is. Gebruik op z'n minst een struct { string property, value; }

[ Voor 19% gewijzigd door .oisyn op 19-04-2007 15:21 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Keess
  • Registratie: Augustus 2006
  • Laatst online: 27-11 08:21
dat je datastructuur gewoon ruk is..
Inderdaad :)

Het zou ook anders, gestructureerder moeten..

ik ga even naar hashtable kijken...

  • Xiphalon
  • Registratie: Juni 2001
  • Laatst online: 01-12 16:44
Kijk dan meteen naar de Dictionary<Key, Value>

  • Not Pingu
  • Registratie: November 2001
  • Laatst online: 20-11 21:40

Not Pingu

Dumbass ex machina

En anders kun je altijd nog functies als Array.BinarySearch() gebruiken als je bij een 1D array wilt blijven en niet zelf een zoekalgorithme wilt schrijven. Maar alle .Net collection classes gebruiken onderhuids ook de Array functions.

Certified smart block developer op de agile darkchain stack. PM voor info.


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 07:20

.oisyn

Moderator Devschuur®

Demotivational Speaker

Ik hoop niet dat een Dictionary een Array.BinarySearch gebruikt ;)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Keess
  • Registratie: Augustus 2006
  • Laatst online: 27-11 08:21
Met de Dictionary class kom ik eruit, kan zoeken op 'Key', als gevonden wordt de 'Value' gereturned..
_/-\o_

[ Voor 27% gewijzigd door Keess op 19-04-2007 17:32 ]


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 08:30

gorgi_19

Kruimeltjes zijn weer op :9

Keess schreef op donderdag 19 april 2007 @ 17:31:
Met de Dictionary class kom ik eruit, kan zoeken op 'Key', als gevonden wordt de 'Value' gereturned..
_/-\o_
Daar heb je de TryGetValue method voor :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Keess
  • Registratie: Augustus 2006
  • Laatst online: 27-11 08:21
En die werkt ;)
Pagina: 1