Watt Skrevet 31. desember 2010 Del Skrevet 31. desember 2010 (endret) har tenkt å lage et program der du kan legge til kategorier og forkjellige elementer i kategoriene. Det ser foreløpig slik ut: alle ordene og kategoriene skal loades fra en tekst fil.. ekempel: [kategori1] ord1 ord2 ord3 ord4 ord5 [kategori2] ord1 ord2 ord3 ord4 ord5 osv.. har funnet en måte å gjøre dette på, men den er tvilsomt veldig effektiv: string[,] wordsByCategory = new string[20, 200]; private void DictionaryCreator_Load(object sender, EventArgs e) { string[] allWords = new string[File.ReadAllLines(Directory.GetCurrentDirectory() + "\\words.txt").Count()]; using (StreamReader sr = new StreamReader(Directory.GetCurrentDirectory() + "\\words.txt")) { string line; for (int i = 0; (line = sr.ReadLine()) != null; i++) { allWords[i] = line; } } for (int i = 0, k = 0; i < allWords.Count(); i++, k++) { if (Regex.IsMatch(allWords[i], "[[\\w]]")) { var match = Regex.Match(allWords[i], "[\\w]+"); wordsByCategory[k, 0] = match.ToString(); for (int j = (i + 1), n = 1; j < allWords.Count(); j++, n++) { if (Regex.IsMatch(allWords[j], "[[\\w]]")) { i = (j - 1); break; } else wordsByCategory[k, n] = allWords[j]; } } } for (int i = 0; i < 20; i++) { if (wordsByCategory[i, 0] != null) categoriesListBox.Items.Add(wordsByCategory[i, 0]); else break; } for (int j = 1; j < 200; j++) { if (wordsByCategory[0, j] != null) wordsListBox.Items.Add(wordsByCategory[0, j]); else break; } } og når indexen blir endret: private void categoriesListBox_SelectedIndexChanged(object sender, EventArgs e) { wordsListBox.Items.Clear(); for (int j = 1; j < 200; j++) { if (wordsByCategory[categoriesListBox.SelectedIndex, j] == null) break; else wordsListBox.Items.Add(wordsByCategory[categoriesListBox.SelectedIndex, j]); } } men når jeg skal ting som å legge til og fjerne ord blir multidimensjonale arrays et prakk. Er det en enklere vei å gjøre dette på, evt bruk av(hvis mulig) multidimensjonale Lists eller noe i den duren? Endret 31. desember 2010 av Watt Lenke til kommentar
BlueEAGLE Skrevet 17. februar 2011 Del Skrevet 17. februar 2011 Du har nok lyst på en dictionary med en streng som key og en list som value kanskje? Lenke til kommentar
GeirGrusom Skrevet 28. februar 2011 Del Skrevet 28. februar 2011 (endret) [serializable] public class Column { public string Header { get; set; } public List<string> Elements { get; private set; } public Column() { Elements = new List<string>(); } } [serializable] public class Table { public List<Column> Columns { get; private set; } public Table() { Columns = new List<Column>(); } } Generelt: Ikke bruk arrays med mindre du har en spesifikk grunn til det. Og i dette tilfellet er arrays særdeles uegnet. Endret 28. februar 2011 av GeirGrusom 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å