14. oktober 2005 - 21:15
Der er
35 kommentarer og 1 løsning
kigge i et array
Hey - jeg har et array med navne på textboxe som indeholder tekst. Jeg vil nu gerne lave en løkke der skal tjekke om aray'et indeholder et specielt navn.. Hvad gør jeg? array.Length indeholder jo en integer med antal pladser i aray'et så den kan jeg ikke bruge i min løkke ..
Annonceindlæg fra Thales
14. oktober 2005 - 21:18
#1
og hvorfor ikke ?
14. oktober 2005 - 21:23
#2
while(tbNames.Length < j) { if(tbNames[j].ToString() =="tbStartTime1" ) { MessageBox.Show("array'et indeholder tbStartTime1"); } j++; }
14. oktober 2005 - 21:24
#3
der er i hvert fald et eller andet i vejen
14. oktober 2005 - 21:25
#4
Ja for det første skal ulighedstegnet vel vendes
14. oktober 2005 - 21:25
#5
while(tbNames.Length > j) { if(tbNames[j].ToString() =="tbStartTime1" ) { MessageBox.Show("Wuhu .. array'et indeholder tbStartTime1"); } j++; }
14. oktober 2005 - 21:25
#6
Mener du tbNames[j].Text i stedet for tbNames[j].ToString() ??
14. oktober 2005 - 21:25
#7
hvorfor ikke en for løkke ?
14. oktober 2005 - 21:25
#8
Men .. så får jeg Object Reference not set to an instance of an object..
14. oktober 2005 - 21:27
#9
Tror ikke man kan skrive tbNames[j].Text
14. oktober 2005 - 21:28
#10
21:25:55 --> Er ikke med
14. oktober 2005 - 21:29
#11
man bruger normalt for løkker til at løbe gennem arrays
14. oktober 2005 - 21:30
#12
okay - hvordan?
14. oktober 2005 - 21:31
#13
;) Jeg tror vi skal se hvad du putter i dit array.
14. oktober 2005 - 21:32
#14
for(int j = 0; j < tbNames.Length; j++) { ... }
14. oktober 2005 - 21:32
#15
private void button1_Click(object sender, System.EventArgs e) { int i = 0; int j = 0; string[] tbNames = new string[20]; foreach (Control control in this.Controls) { if (control is GroupBox) { foreach(Control controlInGroupBox in control.Controls) { if(controlInGroupBox is TextBox) { if(controlInGroupBox.Text !="") { tbNames[i] = controlInGroupBox.Name.ToString(); i++; } } } } while(tbNames.Length > j) { if(tbNames[j] =="tbStartTime1" ) { MessageBox.Show("Array'et indeholder tbStartTime1"); } j++; } }
14. oktober 2005 - 21:33
#16
Hvad sker der hvis du ikke har 20 textboxe ? Tænk lidt over det.
14. oktober 2005 - 21:34
#17
enten så bruger du: for(j=0;j<i;j++) { ... } eller så skifter du fra array til ArrayList
14. oktober 2005 - 21:35
#18
Jamen jeg har 20 textboxe
14. oktober 2005 - 21:36
#19
Hvorfor skifte til arraylist? Det er kun navne på textboxe.
14. oktober 2005 - 21:38
#20
hvis du ikke ved hvor mange der er så er ArrayList ofte bedre end array
14. oktober 2005 - 21:38
#21
okay ..
14. oktober 2005 - 21:39
#22
Du tager kun dem med der står noget i. Derfor får du måske ikke altid 20 sat i dit array. Jeg siger bare, som Arne også viser i sin kode, at du nok ikke skal gå op til 20, men op til det antal du rent faktisk har.
14. oktober 2005 - 21:40
#23
ja .. kan jeg godt se.
14. oktober 2005 - 21:44
#24
private void button1_Click(object sender, System.EventArgs e) { int i = 0; int j = 0; ArrayList tbNames = new ArrayList(); foreach (Control control in this.Controls) { if (control is GroupBox) { foreach(Control controlInGroupBox in control.Controls) { if(controlInGroupBox is TextBox) { if(controlInGroupBox.Text !="") { tbNames.Add(controlInGroupBox.Name.ToString()); i++; } } } } for(j=0;j<i;j++) { if(tbNames[j].ToString() =="tbStartTime1" ) { MessageBox.Show("Array'et indeholder tbStartTime1"); } } }
14. oktober 2005 - 21:45
#25
Men det ændrer vel egentlig ikke på noget .. Kan i hvert fald ikke få det til at virke.
14. oktober 2005 - 21:47
#26
Du behøver ikke "i" - du kan nu bruge tbNames.Length Hvad mener du med "virker ikke"? Har du en textbox med navnet tbStartTime1 som ikke er tom ?
14. oktober 2005 - 21:47
#27
UPS!
14. oktober 2005 - 21:48
#28
Har fået det til at virke - lads os bare sige, at jeg fandt en lille trykfejl ..
14. oktober 2005 - 21:49
#29
;)
14. oktober 2005 - 21:49
#30
men et ArrayList har ikke en Length - har den? tbNames.Count ?
14. oktober 2005 - 21:50
#31
smid et svar begge 2 :)
14. oktober 2005 - 21:54
#32
14. oktober 2005 - 21:55
#33
Yes sir. Jeg siger tak!
14. oktober 2005 - 21:57
#34
jeg synes ikke rigtigt at jeg har bidraget med noget i dette spm. så behold points
14. oktober 2005 - 21:58
#35
Jojo .. synes jeg.. Jeg samlet nemlig heller ikke på points!
11. august 2006 - 23:40
#36
Jeg lukker :)
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.