Gå til innhold

Variabel med spesielle egenskaper etterlyst!


Anbefalte innlegg

Jeg trenger en variabel (med variabel mener jeg altså som: string, integer, boolean, osv) som kan lagre mange verdier (som en array), som raskt kan sjekke om den allerede inneholder en verdi (som en dictionary), som det kan legges til flere items uten mye om og men, som kan finne indexen til item (fra 0 til ubound()), og som kan sorteres (som en array).

 

Finnes dette?

 

Den skal brukes til å lagre en retteordliste til et skriveprogram jeg arbeider med, og må derfor kunne oppdateres når brukeren legger til nye ord, kunne finne indexen for å finne ord som ligger nærme dette ordet (for retteforslag) (derfor må det være sortert). Den må også kunne sjekke om et ord allerede eksisterer der før brukeren evt. får lov til å legge til et nytt.

 

Dersom det ikke finnes en slik variabeltype, ber jeg om forslag til hvordan jeg ellers kan løse problemet. Listboxer er laaaaaangt ute, siden det tar *alt* for lang tid å legge alle orda til i en slik (bortimot et minutt, stor ordliste!).

 

Hugeflis

Endret av Hugeflis
Lenke til kommentar
Videoannonse
Annonse

Kan du forklare meg hvordan jeg evt gjør dette? Jeg har aldri brukt databaser før, skjønner du, så jeg ville likt å få forklart følgende:

 

Hvorfor (når) bør man bruke databaser?

Må brukeren ha noe spesielt installert for å bruke det?

Må jeg legge til flere referanser?

 

Hvordan bruker jeg egenskapene jeg etterlyste i første post når jeg har en database?

 

:)

Hugeflis

Lenke til kommentar

Listbox er vel bare en GUI kontroller hvis jeg ikke tar feil, så det å legge denne funksjonaliteten direkte i grensesnittet tror jeg ikke er å anbefale.

 

Tror jeg ville prøvd meg på å legge det inn i en ArrayList. Dette er en klasse som har metoder for søk, sortering, legge til nye, hente ut index av verdi, etc...

 

Bare legg til denne namespacen i topp:

using System.Collections;

 

og opprett en ArrayList slik:

private ArrayList myArrayList = new ArrayList();

 

 

Hvor mange ord er det snakk om sånn ca?

Endret av hpfarstad
Lenke til kommentar

Les f.eks. litt på denne siden:

 

ArrayList Tutorial in VB.NET

 

Kan lite VB syntax da jeg for det meste skriver i C#, men Arraylist har metoder som:

 

ArrayList.Add() // Legg til på slutten
ArrayList.Sort() // Sorter
ArrayList.BinerySearch() // Søk etter verdi
ArrayList.IndexOf() // Finn index til verdi
ArrayList.Insert() // Legg inn verdi på gitt index

 

Vet ikke om det er dette du er ute etter da, men forsto det sånn at du ville ha et objekt å lagre mange objekter i (hvor objektene er strenger).

Lenke til kommentar

Joda, den funket flott den!

 

Men jeg støtte på et annet problem. Finnes det en eller annen smart funksjon i arraylist (eller en annen plass, eller kan noen lage) som jeg kan kalle med to stringer, og så returnerer den en integer med antallet forskjeller mellom desse to stringene?

 

Hugeflis

Lenke til kommentar

Nei, jeg mener ikke i forskjellen på posisjonene i arraylist, men forskjellen på stavingen av ordet.

Eks:

 

Katt

Hatt

=1

 

Rema

Mega

=3

 

Program

Pro

=4

 

Finnes dette i arraylist eller en annen plass/kan noen lage det? Jeg regner nemlig med at hvis jeg lager det, så blir det veldig tregt...

Endret av Hugeflis
Lenke til kommentar

Kan kanskje rettlede deg ved å si at en string er egentlig en array av typen char (bokstaver). Så du kan hente ut char fra en string på samme måte som du gjøre med en hvilken som helst annen array:

 

string s = "Hallo"

Console.Write(s[0])
Console.Write(s[4])

 

Vil gi output:

"Ho"

 

;)

 

Det jeg ville gjort er altså å lage funksjonen:" int GetDifference(string a, string b)", hvor jeg tok for meg første bokstav i a og sjekket mot alle bokstaver i b, så andre bokstav av a mot alle bokstaver i b, osv...

Endret av hpfarstad
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...