2012-11-29 1223 views
0

我正在嘗試遍歷,並通過使用ListServiceUtility.GetListItemData方法通過調用sharepoint來填充字典中的值。我的代碼如下遍歷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

我必須同意馬格納斯在這裏。你可以調試和檢查你的外循環中的「Entry」嗎?邏輯對我來說看起來很好。 – Wooster11

+0

唯一的解釋是字典是空的;-) –

回答

0

字典是空的,因爲feildname變量被錯誤地創建。感謝大家的幫助。

0

我同意這些評論,看起來內循環沒有被訪問 - 你能通過調試器中的代碼來檢查。

而且,在VB中,變量循環不會重置爲0,因此innerCnt將包含循環中的總次數,而不是每個條目的遍歷次數。如果這不是你想要的,你需要在內部循環之前使用innerCnt = 0。

注意:這是設計,但它是來自C#的反向行爲。