0
我試圖通過書籤使用循環結構來獲取Desire2Learn實例中所有用戶的列表,但出於某種原因它連續循環並且不會返回。當我調試它,它顯示如圖中的用戶管理工具的用戶(遠遠超過我們在系統的海量我的代碼的一部分是在這裏:通過Valence獲取所有用戶的列表
public async Task<List<UserData>> GetAllUsers(int pages = 0)
{
//List<UserData> users = new List<UserData>();
HashSet<UserData> users = new HashSet<UserData>();
int pageCount = 0;
bool getMorePages = true;
var response = await Get<PagedResultSet<UserData>>("/d2l/api/lp/1.4/users/");
var qParams = new Dictionary<string, string>();
do
{
qParams["bookmark"] = response.PagingInfo.Bookmark;
//users = users.Concat(response.Items).ToList<UserData>();
users.UnionWith(response.Items);
response = await Get<PagedResultSet<UserData>>("/d2l/api/lp/1.4/users/", qParams);
if (pages != 0)
{
pageCount++;
if (pageCount >= pages)
{
getMorePages = false;
}
}
}
while (response.PagingInfo.HasMoreItems && getMorePages);
return users.ToList();
}
我原來用的是列表容器這是註釋掉,但只是切換到HashSet,看看我是否可以注意到,如果重複的地方被添加。
這很簡單,但無論什麼原因,它不工作Get<PagedResultSet<UserData>>()
方法簡單地包裝HTTP請求邏輯。書籤每次發送它
用戶管理工具指示th系統中有39,695個用戶。在運行了幾分鐘,並在循環中打破UnionWith
後,我顯示我的用戶數爲211,800。
我錯過了什麼?