Для цикла приращение не работает

У меня есть цикл for, который не работает для меня должным образом. Если я делаю отладку, увеличение всегда сбрасывается до 0, поэтому оно достигает только 1.

Вот часть кода:

Сначала я делаю цикл for для вызова userID

var userDataId = client.GetUser(DataSourceId); 

for (int i = 0; i < userDataId.Length; i++)
{ 
    string[] multiUserIDs = new string[] { userDataId[i].List[0].ToString() };

    WS.TaskEntry[] resultGT3 = client.GetTasks3(multiUserIDs);

    for (int s = 0; s < resultGT3.Length; s++)
    {
      file.WriteLine("{0}, {1}, {2}, {3}",
      resultGT3[s].ProjectID,
      resultGT3[s].UserID,
      resultGT3[s].ProjectTitle,
      resultGT3[s].StartDate);
    }

}

Здесь s++ всегда идет к 0 и только к 1

Я также попробовал это с while, но у него тот же результат:

int s = 0;
while (s < resultGT3.Length)
{                                            
  file.WriteLine("{0}, {1}, {2}, {3}",
  resultGT3[s].ProjectID,
  resultGT3[s].UserID,
  resultGT3[s].ProjectTitle,
  resultGT3[s].StartDate);
  ++s;
}

Не могли бы вы помочь мне определить, что я делаю неправильно?

1
задан 22.06.2016, 01:26
3 ответа

увеличение всегда resetea к 0 поэтому только прибывает к 1.

Конечно стоимость resultGT3. Length 1 и эта была та razГіn, из-за которого ты не видишь изменение:

for (int s = 0; s < resultGT3.Length; s++)
{
  file.WriteLine("{0}, {1}, {2}, {3}",
  resultGT3[s].ProjectID,
  resultGT3[s].UserID,
  resultGT3[s].ProjectTitle,
  resultGT3[s].StartDate);
}
1
ответ дан 24.11.2019, 14:47
  • 1
    Привет, если верно, согласно debug userID содержит string [1] всегда. У меня есть более наверху другой for, который он содержит (int i = 0; i < userDataId. Length; i ++) и именно, этот UserID я помещаю в resultGT3. Я издам вопрос, чтобы добавлять эту часть кода –  A arancibia 01.03.2016, 20:18
  • 2
    уже добавьте оставшуюся часть кода, спасибо –  A arancibia 01.03.2016, 20:22

>>, которого он формирует тогда prodia получать все usersID, полученные от UserDataId?

Имея в виду, что услуга GetTasks3() может получать список IDs, ты мог бы посылать array с некоторыми, если ты заблаговременно накапливаешь их в списке перед тем, как призывать в метод.

var userDataId = client.GetUser(DataSourceId); 

List<string> multiUserIDs = new List<string>();

foreach (var userdata in userDataId)
{ 
    multiUserIDs.Add(userdata.List[0].ToString());
}

WS.TaskEntry[] resultGT3 = client.GetTasks3(multiUserIDs.ToArray());

foreach (var result in resultGT3)
{
  file.WriteLine("{0}, {1}, {2}, {3}",
      result.ProjectID,
      result.UserID,
      result.ProjectTitle,
      result.StartDate);
}

Ты Будешь наблюдать, что сейчас for не укрыты

0
ответ дан 24.11.2019, 14:47
  • 1
    осуществите твою рекомендацию, и в multiUserIDs. ToArray () resultGT3 делая breakpoint я вижу хорошо, что все IDs там (их 11 в todal), прибыв к forach. Он работает несколько раз только, давая мне первый UserID, неоднократно не добавляя всех остальных, которые он получил ранее –  A arancibia 01.03.2016, 23:06
  • 2
    хорошо это, что ты комментируешь, - продвижение, ты передаешь который foreach, когда ты говоришь, что ты прибываешь? ты говоришь, что он дает тот же userid, но дело не в том, что список, который он возвращает GetTasks3 () - та же организация? если ты инспектируешь мышью этот список, смоги видеть, что userid отличные? –  Leandro Tuttini 01.03.2016, 23:16
  • 3
    хороший, если multiUserIDs. ToArray () содержит полный список differentes UserIS, но когда я перемещаю мышь из-за resultGT3 только, дает мне результат [0], который содержит всегда тот же userID. Не важно все разы я это выполнил делая F5 в miso место, всегда он получает mimso USerID resultGT3. Это консольное приложение, но если я тестирую ту же концепцию в Windows Form (textBox1. Text + = resultGT3 [s].UserID) UsersID меняются. Что я могу делать с resultGT3? –  A arancibia 01.03.2016, 23:25
  • 4
    но тогда resultGT3 () возвращает единственный результат не список, который должен взвешивать, что ты послал array IDs. Ты мог бы консультироваться с человеком, который создал услугу, чтобы санкционировать, как ответь внутри, когда ты посылаешь несколько IDs, может быть, услугу у него есть вирус, который должен быть решен для того, чтобы он возвратил список –  Leandro Tuttini 01.03.2016, 23:33
  • 5
    Согласно человеку, который разработал услугу, этот был бы должен мочь возвращать несколько userIds, если они происходят от списка. Единственной формы, что я был способен это делать, он, когда у меня был Windows form используя + =, но не bucleando с консолью и так мочь писать в файле вывода, что я хочу создать –  A arancibia 01.03.2016, 23:46

EncontrГ© проблема и уже я смог решать это.

В первой lГ-nea меня cГіdigo:

var userDataId = client.GetUser(DataSourceId); 

Вместо того, чтобы помещать результат в переменную var userDataId, это изменил из-за:

UserData[] userDataId = client.GetUserData(DataSourceId);

Из этой формы я смог помещать все UsersIDs и уже смог получать то, что он искал.

0
ответ дан 24.11.2019, 14:47