vb.net - assigning integers to array as user enters them -


i working on problem in text book. interface allows user enter number of each car type sold. add total button should use array accumulate numbers sold each car type. should display in lblnew , lblused total of each sold. there way use loop add new integers arrays intnew() , intused() without knowing how many numbers user enter? (im concerned intnew() right now)

public class frmmain  dim total integer = 0  private sub frmmain_load(sender object, e eventargs) handles me.load     ' fill list box values      lstcartype.items.add("new")     lstcartype.items.add("used")     lstcartype.selectedindex = 0 end sub  private sub btnadd_click(sender object, e eventargs) handles btnadd.click     ' adds amount sold appropriate total      ' declare accumulator array , variables     dim intnew() integer = {}     'dim intused integer = {}     dim index integer = 0     dim intsold integer     dim inttotal integer      ' update array value     if lstcartype.text = "new"         integer.tryparse(txtsold.text, intsold)         redim preserve intnew(index + 1)         intnew(index) = intsold         index += index     end if      ' display array values      intcolumn integer = 0 intnew.getupperbound(0)          inttotal = intnew(intcolumn) + inttotal      next      lblnew.text = inttotal.tostring      txtsold.focus() end sub  private sub btnexit_click(sender object, e eventargs) handles btnexit.click     me.close() end sub  private sub txtsold_enter(sender object, e eventargs) handles txtsold.enter     txtsold.selectall() end sub  private sub txtsold_keypress(sender object, e keypresseventargs) handles txtsold.keypress     ' allow numbers , backspace      if (e.keychar < "0" orelse e.keychar > "9") andalso e.keychar <> controlchars.back         e.handled = true     end if end sub 

i edited per steves idea, i'm getting few errors: expression of type 'object', not collection type(line 42). option strict on disallows late binding(line 36), object strict on requires variable declarations have clause(line 25). turn strict off heard not supposed normally. ideas how work? heres updated code:

option explicit on option strict on option infer off  public class frmmain  dim total integer = 0  private sub frmmain_load(sender object, e eventargs) handles me.load     ' fill list box values      lstcartype.items.add("new")     lstcartype.items.add("used")     lstcartype.selectedindex = 0 end sub  private sub btnadd_click(sender object, e eventargs) handles btnadd.click     ' adds amount sold appropriate total      ' declare accumulator array , variables     dim intnew = new list(of integer)()     'dim intused integer = {}     dim index integer = 0     dim intsold integer     dim inttotal integer      ' update array value       if lstcartype.text = "new"         if integer.tryparse(txtsold.text, intsold)             intnew.add(intsold)         end if     end if      ' display list values      each intvalue integer in intnew         inttotal += intvalue     next     lblnew.text = inttotal.tostring      txtsold.focus() end sub  private sub btnexit_click(sender object, e eventargs) handles btnexit.click     me.close() end sub  private sub txtsold_enter(sender object, e eventargs) handles txtsold.enter     txtsold.selectall() end sub  private sub txtsold_keypress(sender object, e keypresseventargs) handles txtsold.keypress     ' allow numbers , backspace      if (e.keychar < "0" orelse e.keychar > "9") andalso e.keychar <> controlchars.back         e.handled = true     end if end sub 

end class

yes, instead of array should use list(of integer) doesn't need redimmed everytime add new value.

dim intnew list(of integer) = new list(of integer)() dim inttotal integer  if lstcartype.text = "new"     if integer.tryparse(txtsold.text, intsold)         intnew.add(intsold)     end if end if  ' display list values  each intvalue  in intnew     inttotal += intvalue  next lblnew.text = inttotal.tostring 

as list(t) has many advantages against array. fixed size of array more visible, use list(t) @ same way array discover size or access single value index

dim countelements = intnew.count  dim secondvalue = intnew(1) 

and ienumerable extensions?

dim inttotal = intnew.sum() 'bye bye explicit loop lblnew.text = inttotal.tostring 

Comments

Popular posts from this blog

apache - Remove .php and add trailing slash in url using htaccess not loading css -

inno setup - TLabel or TNewStaticText - change .Font.Style on Focus like Cursor changes with .Cursor -