2013-12-06 4 views
0

Я создал ниже делать во время цикла:Do While Loop не работает

ConnectionServerRest connectionServer = ConnectCiscoUnityServer(IP, login, password); 
WebCallResult res; 
List<UserBase> oUsers; 
int page = 10; 
int recordsPerPage = 20; 

do 
{ 
    Console.WriteLine("Page:" + page); 
    // get first <recordsPerPAge> Users from <page> Page 
    res = UserBase.GetUsers(connectionServer, out oUsers, page, recordsPerPage); 
    Console.WriteLine("Users returned: " + oUsers.Count); 
    page++; 
} while (oUsers.Count == 0); 

Я использую pagging, чтобы получить 20 пользователей на страницу. Я хотел бы выйти из цикла, когда oUsers.Count == 0. Когда я поместил int page = 10, цикл будет бесконечным, потому что результат не будет на 10-й странице. В случае, если я положил int page = 1, он возвращает 20 записей, но вместо этого выходит из цикла, чтобы перейти на вторую страницу. Может ли кто-нибудь из вас помочь мне решить эту проблему?

+2

'while (oUsers.Count> 0);' – Novak

ответ

2

Do ... while Выполняет по крайней мере одно время и до тех пор, пока условие истинно.

do 
{ 
    Console.WriteLine("Page:" + page); 
    // get first <recordsPerPAge> Users from <page> Page 
    res = UserBase.GetUsers(connectionServer, out oUsers, page, recordsPerPage); 
    Console.WriteLine("Users returned: " + oUsers.Count); 
    page++; 
} while (oUsers.Count != 0); //not equal 

В вашем примере, это выполняется один раз и видит, что условие «по-прежнему работать» является ложным, так как oUsers.Count == 0 возвращение ложным.

+0

Спасибо @ Andrei V. Пятница и я, м, не думая четко :) – ironcurtain

+0

@ironcurtain, я не могу сказать, что я не знаю чувства :) –