2012-11-29 1225 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#的反向行为。