2012-11-29 2 views
0

전 과정을 반복하고 ListServiceUtility.GetListItemData 메서드를 사용하여 sharepoint를 통해 채워지는 dictionairy 값을 가져 오려고합니다. 내 코드는 각각의 마지막VB.net의 사전 목록을 반복합니다.

actualList = ListServiceUtility.GetListItemData(Test_Sharepointsite_url, myCred, Test_List_Name, Nothing, fieldNames, <Query/>, isRecursive, pagingSize) 

For Each Entry As Dictionary(Of String, String) In actualList 

      Debug.WriteLine(cnt) 
      cnt += 1 

      For Each pair In Entry 
       Debug.WriteLine(innerCnt) 
       innerCnt += 1 
       Debug.WriteLine("Key:" & pair.Key & " Value:" & pair.Value) 
      Next 
     Next 

CNT는 4 층까지 다음과 같이 내 SharePoint 목록에서 4 개 항목이 있기 때문에, 그러나, innerCnt 전혀 증가하지 않는보고, 그것은해야 예상대로보고, 블록 거기에 의해 완전히 전달됩니다.

오류가 발생하지 않으므로 구문 오류가 아니라 논리적인 문제입니다. 바라기를 나는 도움이 될 충분한 정보를 여기에 제공 해왔다!

+3

어쩌면 사전이 비어있을 수 있습니까? – Magnus

+0

여기 Magnus와 동의해야합니다. 외부 루프에서 "Entry"를 디버깅하고 확인할 수 있습니까? 논리는 나에게 잘 보인다. – Wooster11

+0

유일한 설명은 사전이 비어 있다는 것입니다 ;-) –

답변

0

feildname 변수가 부적절하게 작성되어 사전이 비어 있습니다. 모두 도움을 주셔서 감사합니다.

0

의견에 동의합니다. 내부 루프가 액세스되지 않는 것으로 보입니다. 디버거의 코드를 검사하여 확인할 수 있습니까?

또한 루프의 VB 변수는 0으로 재설정되지 않으므로 innerCnt에는 각 항목에 대한 횟수가 아니라 루프를 통과 한 총 횟수가 포함됩니다. 이것이 원하는 것이 아니면 내부 루프 바로 전에 innerCnt = 0이 필요합니다.

참고 : 이것은 의도적으로 설계된 동작이지만 C#의 동작에 있습니다.

관련 문제