943,587 Members | Top Members by Rank

Ad:
  • VB.NET Discussion Thread
  • Unsolved
  • Views: 1449
  • VB.NET RSS
Jul 30th, 2009
0

Create/Initialize property array

Expand Post »
Hi!

I have som auto generated (from xsd file, xsd.exe is used) Partial classes.

On of the properties is an arry, her is the code:

VB.NET Syntax (Toggle Plain Text)
  1. Partial Public Class Betaleregrp4900
  2.  
  3. Private oversiktOverBetaleregrp4899Field() As OversiktOverBetaleregrp4899
  4.  
  5. Private betalingTotaldatadef21821Field As BetalingTotaldatadef21821
  6.  
  7. Private betalerAntalldatadef21822Field As BetalerAntalldatadef21822
  8.  
  9. Private gruppeidField As String
  10.  
  11. Public Sub New()
  12. MyBase.New
  13. Me.gruppeidField = "4900"
  14. End Sub
  15.  
  16. '''<remarks/>
  17. <System.Xml.Serialization.XmlElementAttribute("OversiktOverBetalere-grp-
  18. 4899")> _
  19. Public Property OversiktOverBetaleregrp4899() As
  20. OversiktOverBetaleregrp4899()
  21. Get
  22. Return Me.oversiktOverBetaleregrp4899Field
  23. End Get
  24. Set
  25. Me.oversiktOverBetaleregrp4899Field = value
  26. End Set
  27. End Property
This property is an array:

Private oversiktOverBetaleregrp4899Field() As OversiktOverBetaleregrp4899

I can write:

VB.NET Syntax (Toggle Plain Text)
  1. Skjema_Obj.Betaleregrp4900.OversiktOverBetaleregrp4899 = New
  2. OversiktOverBetaleregrp4899() { _
  3. New OversiktOverBetaleregrp4899, _
  4. New OversiktOverBetaleregrp4899}

But my problem is, I don't know how many elements of the type
OversiktOverBetaleregrp4899 I have to create and then I do not know how many
New OversiktOverBetaleregrp4899 I need between {}.

I need to use an loop that generats the number of New
OversiktOverBetaleregrp4899 I need, but how can I do that? Is there another
way to do this?

Her is the start of the code for the partial class
OversiktOverBetaleregrp4899

VB.NET Syntax (Toggle Plain Text)
  1. Partial Public Class OversiktOverBetaleregrp4899
  2.  
  3. Private betalerFodselsnummerdatadef2305Field As
  4. BetalerFodselsnummerdatadef2305
  5.  
  6. Private betalerOrganisasjonsnummerdatadef21820Field As
  7. BetalerOrganisasjonsnummerdatadef21820
  8.  
  9. Private betalerNavndatadef2303Field As BetalerNavndatadef2303
  10.  
  11. Private betalerAdressedatadef2304Field As BetalerAdressedatadef2304
  12.  
  13. Private betalerPostnummerdatadef11795Field As
  14. BetalerPostnummerdatadef11795
  15.  
  16. Private betalerPoststeddatadef11796Field As BetalerPoststeddatadef11796
  17.  
  18. Private betalingBelopdatadef2307Field As BetalingBelopdatadef2307
  19.  
  20. Private gruppeidField As String
  21.  
  22. Public Sub New()
  23. MyBase.New
  24. Me.gruppeidField = "4899"
  25. End Sub
  26.  
  27. '''<remarks/>
  28. <System.Xml.Serialization.XmlElementAttribute("BetalerFodselsnummer-
  29. datadef-2305")> _
  30. Public Property BetalerFodselsnummerdatadef2305() As
  31. BetalerFodselsnummerdatadef2305
  32. Get
  33. Return Me.betalerFodselsnummerdatadef2305Field
  34. End Get
  35. Set
  36. Me.betalerFodselsnummerdatadef2305Field = value
  37. End Set
  38. End Property

I hope somebody can help me with this! Thanks!
Reputation Points: 10
Solved Threads: 0
Newbie Poster
solano is offline Offline
2 posts
since Jul 2009
Jul 30th, 2009
0

Re: Create/Initialize property array

I don't understand what you're asking. Load the property array in to a List of generics, modify it, then call .ToArray() if you are having problems working with an array. Other than that I can't understand what you are asking.
Featured Poster
Reputation Points: 1749
Solved Threads: 735
Senior Poster
sknake is offline Offline
3,948 posts
since Feb 2009
Jul 31st, 2009
0

Re: Create/Initialize property array

Click to Expand / Collapse  Quote originally posted by sknake ...
I don't understand what you're asking. Load the property array in to a List of generics, modify it, then call .ToArray() if you are having problems working with an array. Other than that I can't understand what you are asking.
I will try to explain it some more:

It is someting like this I want to do:
Dim i As Integer = 0
        Dim NumberOfCustomers = 3
        Dim OversiktOverBer_Tabell(NumberOfCustomers - 1) As OversiktOverBetaleregrp4899

        
        While NumberOfCustomers > 0

            Skjema_Obj.Betaleregrp4900.OversiktOverBetaleregrp4899 {New Oversik}


            Dim OversiktOverBet_Obj As New OversiktOverBetaleregrp4899

            Dim BetalerOrganisasjonsnummerdatadef21820_Obj As New BetalerOrganisasjonsnummerdatadef21820
            BetalerOrganisasjonsnummerdatadef21820_Obj.Value = "Test BetOrgNr (0) - 123456789"

            Dim BetalerFodselsnummerdatadef2305_Obj As New BetalerFodselsnummerdatadef2305
            BetalerFodselsnummerdatadef2305_Obj.Value = "Test BetFørslenr (0) - 07097645669"

            Dim BetalerNavndatadef2303_Obj As New BetalerNavndatadef2303
            BetalerNavndatadef2303_Obj.Value = "Test BetNavn (0) - Kari Normann"

            Dim BetalerAdressedatadef2304_Obj As New BetalerAdressedatadef2304
            BetalerAdressedatadef2304_Obj.Value = "Test BetAdr (0) - Flatbygdi"

            Dim BetalerPostnummerdatadef11795_Obj As New BetalerPostnummerdatadef11795
            BetalerPostnummerdatadef11795_Obj.Value = "Test BetPostNr (0) - 6893"

            Dim BetalerPoststeddatadef11796_Obj As New BetalerPoststeddatadef11796
            BetalerPoststeddatadef11796_Obj.Value = "Test BetPostSted (0) - Vik i Sogn"

            Dim BetalingBelopdatadef2307_Obj As New BetalingBelopdatadef2307
            BetalingBelopdatadef2307_Obj.Value = "2330"


            OversiktOverBet_Obj.BetalerOrganisasjonsnummerdatadef21820 = BetalerOrganisasjonsnummerdatadef21820_Obj
            OversiktOverBet_Obj.BetalerFodselsnummerdatadef2305 = BetalerFodselsnummerdatadef2305_Obj
            OversiktOverBet_Obj.BetalerNavndatadef2303 = BetalerNavndatadef2303_Obj
            OversiktOverBet_Obj.BetalerAdressedatadef2304 = BetalerAdressedatadef2304_Obj
            OversiktOverBet_Obj.BetalerPostnummerdatadef11795 = BetalerPostnummerdatadef11795_Obj
            OversiktOverBet_Obj.BetalerPoststeddatadef11796 = BetalerPoststeddatadef11796_Obj
            OversiktOverBet_Obj.BetalingBelopdatadef2307 = BetalingBelopdatadef2307_Obj

--> This is may problem, I have to do this another way. Is it possible to split this sentence. The array/list Skjema_Obj.Betaleregrp4900.OversiktOverBetaleregrp4899 must have in this case 3 OversiktOverBetaleregrp4899 objekst, and I have to say {New OversiktOverBetaleregrp4899, New OversiktOverBetaleregrp4899, New OversiktOverBetaleregrp4899}
but how do I do that when the number of objects is not static?

            Skjema_Obj.Betaleregrp4900.OversiktOverBetaleregrp4899 = New OversiktOverBetaleregrp4899() {New OversiktOverBetaleregrp4899}            Skjema_Obj.Betaleregrp4900.OversiktOverBetaleregrp4899(i) = OversiktOverBet_Obj

            OversiktOverBer_Tabell(i) = OversiktOverBet_Obj

            i = i + 1

            NumberOfCustomers = NumberOfCustomers - 1

        End While

I hope this made it clearer. Thanks!
Reputation Points: 10
Solved Threads: 0
Newbie Poster
solano is offline Offline
2 posts
since Jul 2009
Aug 1st, 2009
0

Re: Create/Initialize property array

Neither did I get this

But if you don't know the number of array elements at the compile time, pass it to the constructor of your (partial) class.

I would do something like this
VB.NET Syntax (Toggle Plain Text)
  1. Partial Public Class CItem1
  2.  
  3. Public Prop1 As Integer
  4. Public Prop2 As String
  5.  
  6. Public Sub New(ByVal value1 As Integer, ByVal value2 As String)
  7. '
  8. Prop1 = value1
  9. Prop2 = value2
  10. End Sub
  11.  
  12. End Class
  13.  
  14. Partial Public Class CItem2
  15.  
  16. Public Prop3 As Integer
  17. Public Prop4() As CItem1
  18.  
  19. Public Sub New(ByVal value3 As Integer, ByVal NumOfElements As Integer)
  20. '
  21. Prop3 = value3
  22. ReDim Prop4(NumOfElements)
  23. End Sub
  24.  
  25. End Class
and use it
VB.NET Syntax (Toggle Plain Text)
  1. Dim OneItem As CItem2
  2.  
  3. OneItem = New CItem2(3, 2) ' Now Prop3 has the value 3 and we have an uninitialized array with three CItem1s
  4.  
  5. ' Set some values
  6. OneItem.Prop4(0).Prop1 = 1
  7. OneItem.Prop4(0).Prop2 = "Cust1"
  8. ' Or...
  9. OneItem.Prop4(1) = New CItem1(2, "Cust2")
I did read your code and tried to grab the idea what you're trying to do. This may not be exactly what you wanted, but I hope it gives some idea.

HTH
Reputation Points: 218
Solved Threads: 201
Veteran Poster
Teme64 is offline Offline
1,024 posts
since Aug 2008

This thread is more than three months old

No one has posted to this discussion for at least three months. Please let old threads die and do not reply to them unless you feel you have something new and valuable to contribute that absolutely must be added to make the discussion complete. Otherwise, please start a new thread in this forum instead.
Message:
Previous Thread in VB.NET Forum Timeline: Guide me to write code for barcode scan with CODE 39 BRACODE font in VB.NET
Next Thread in VB.NET Forum Timeline: i cant edit the available code





About Us | Contact Us | Advertise | Acceptable Use Policy
Forum Index | Build Custom RSS Feed


Follow us on Twitter


© 2011 DaniWeb® LLC