2010-12-03 12 views
0

XMLファイルからクラスを生成しました。私はxsd.exeを使ったと思う。Foo()はどのような配列でFoo()ですか?

XMLファイル内のメインノードのコレクションの一つは次のようにレンダリングされました:

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

そして確かには、後に定義されている製品のクラスがありますし、それがうまく働きました。シリアライズされ、デシリアライズされた罰金。それを心配したり、操作したりする必要はありませんでした。

今はデータを再訪して操作する必要があります。

しかし、どのような種類のコレクション(配列?)がPublic Property PRODUCT() As PRODUCT()であり、どのようにループするのですか?そしてそれに追加しますか?

基本的な質問、私は知っています。たぶんジェネリックスで快適すぎて、xsdが私に何かを投げ込んでしまったのですが、List(of T)私は怖がっています。製品として

答えて

2

そこに2つの括弧が混同されてはなりません。最初のセットは、プロパティの名前の後ろの括弧で、2番目のセットは戻り値の型をProductオブジェクトの配列として識別します。

に似て:あなたはプロパティを宣言しているため、プロパティが返すのみ整数の配列、およびIDの近く括弧は()のみが存在することPublic Property IDs() As Integer()

それがProductオブジェクトの標準配列のように見えるので、あなたは通常、ループの任意の数を用いてループすることができます:

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

または

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

あなたのコード

公共財産PRODUCT()()

タイプの製品のオブジェクトの配列を返します。その型がコレクション、構造体、配列のいずれであるかは、私があなたが提供したコードでは分かりません。それをループする最も簡単な方法は、そのようになります。

For each prod as PRODUCT in rtnPRODUCTS 
    'Do Something 
Next 
関連する問題