2010-12-03 7 views
0

Nous avons récemment généré une classe à partir d'un fichier XML. Je pense que nous avons utilisé xsd.exe.Quel type de tableau est Foo() en tant que Foo()?

L'une des principales collections de nœud dans le fichier XML a été rendu comme:

<System.Xml.Serialization.XmlElementAttribute("PRODUCT")> _ 
Public Property PRODUCT() As PRODUCT() 
    Get 
     Return Me.pRODUCTField 
    End Get 
    Set 
     Me.pRODUCTField = value 
    End Set 
End Property 

Et bien sûr, il y a classe produit défini par la suite, et il a bien fonctionné. Sérialisé et désérialisé amende. N'a pas besoin de s'inquiéter à ce sujet ou de le manipuler.

Seulement maintenant nous devons revisiter et manipuler les données.

Mais quel type de collection (array?) Est Public Property PRODUCT() As PRODUCT(), et comment on fait une boucle dessus? Et ajouter à cela?

Question de base, je sais. Probablement trop à l'aise avec les génériques et maintenant xsd m'a jeté quelque chose qui n'est pas List(of T) Je cours en courant.

Répondre

2

Ne soyez pas déroutés par les deux ensembles de parens. Le premier ensemble est simplement les parens après le nom de la propriété, tandis que le second identifie le type de retour sous la forme d'un tableau d'objets Product.

similaires à: Public Property IDs() As Integer()

Cette propriété renvoie uniquement Tableau d'entiers, et les parens près de ID() n'existent parce que vous déclarer la propriété.

Comme il semble être un tableau standard d'objets produits, vous pouvez passer en boucle avec un certain nombre de boucles normales:

For Each p As PRODUCT In obj.PRODUCTS() 
    ... 
Next 

ou

For i As Integer = 0 To obj.PRODUCTS.Length-1 
    ... 
Next i 
2

Votre code

PRODUIT propriété publique() que le PRODUIT()

Renvoie un tableau d'objets de type de produit. Maintenant, que ce type soit une collection, une structure ou un tableau, je ne sais pas avec le code que vous avez fourni. Le moyen le plus simple de faire une boucle serait comme tel.

For each prod as PRODUCT in rtnPRODUCTS 
    'Do Something 
Next 
Questions connexes