2010-12-03 5 views
0

XML 파일에서 클래스를 생성했습니다. 나는 우리가 xsd.exe를 사용했다고 생각한다.어떤 종류의 배열이 Foo()가 Foo()입니까?

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

있는지, 제품 클래스는 나중에 정의가, 그리고 그것을 잘 작동 : XML 파일의 주요 노드 컬렉션의

는 다음과 같이 표현했다. 직렬화 및 비 직렬화. 그것에 대해 걱정하거나 조작 할 필요가 없었습니다.

이제는 데이터를 다시보고 조작해야합니다.

그러나 어떤 종류의 컬렉션 (배열?)이 Public Property PRODUCT() As PRODUCT()이며 어떻게 반복할까요? 그리고 그것에 추가 하시겠습니까?

기본적인 질문입니다. 아마도 제네릭에 익숙하지 않은 것 같아요. xsd가 나에게 무언가를 던졌습니다. List(of T) 나는 두려워하고 있습니다.

답변

2

두 장의 괄호를 혼동하지 마십시오. 첫 번째 집합은 단순히 속성 이름 뒤에있는 괄호이며 두 번째 집합은 반환 형식을 Product 개체의 배열로 식별합니다.

유사 : 당신이 재산을 선언하고 있기 때문에 속성 만 반환 정수의 배열 및 ID가 근처 괄호()는 단지 존재한다는 Public Property IDs() As Integer()

. 이 제품 객체의 표준 배열로 나타납니다 때문에

, 정상적인 루프의 수와 그 위에 루프 할 수 있습니다

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

또는

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

귀하의 코드

공공 건물 제품() 제품으로()

는 유형 제품의 객체의 배열을 돌려줍니다. 이제 해당 Type이 Collection, Structure 또는 Array인지 여부를 사용자가 제공 한 코드로 알지 못합니다. 루프를 돌리는 가장 간단한 방법은 그렇게 될 것입니다.

For each prod as PRODUCT in rtnPRODUCTS 
    'Do Something 
Next 
관련 문제