#c# #for-loop #foreach
#c# #for-цикл #foreach
Вопрос:
Как я вернусь к другому циклу?
for (int index = MIN_DIAGNOSIS; index <= MAX_DIAGNOSIS; index )
{
foreach (RepeaterItem ri1 in GeneralRepeater.Items)
{
int iItemIndex = ri1.ItemIndex;
var myDDL = GeneralRepeater.Items[iItemIndex].FindControl("derp");
MyPoc.Diagnoses.Diagnoses[index] = new PatientDiagnosis(/*snip*/);
return index;
//error 'PatientPlanOfCare.cmdSave_Click(object, System.EventArgs)'
//returns void, a return keyword must not be followed by
//an object expression
}
}
break;
Комментарии:
1. Ваш код не имеет никакого смысла. Что вы хотите сделать?
2. Довольно неясно, что вам нужно. Пожалуйста, прочтите tinyurl.com/so-hints и соответствующим образом отредактируйте свой вопрос.
3.
break;
инструкция во внутреннем цикле приведет к его прерыванию и возврату к итерации внешнего цикла.4. Да, ваш код не имеет смысла. Вы должны создать очень простой пример, который иллюстрирует вашу проблему, и вставить его вместо вашего фактического кода. Кроме того, если это соответствует вашему вопросу без полос прокрутки, у вас больше шансов получить помощь.
5. Почему бы вам не перефразировать свой вопрос в терминах того, чего вы хотите достичь своим кодом, вместо того, чтобы задавать вопросы о реализации. Похоже, здесь есть некоторая путаница.
Ответ №1:
Просто разорвите внутренний цикл и используйте нужную переменную в главном цикле.
for (int index = PocDiagnoses.MIN_DIAGNOSIS; index <= PocDiagnoses.MAX_DIAGNOSIS; index )
{
foreach (RepeaterItem ri1 in GeneralRepeater.Items)
{
int iItemIndex = ri1.ItemIndex;
DropDownList myDDL = (DropDownList)GeneralRepeater.Items[iItemIndex].FindControl("GeneralDDL");
MyPoc.Diagnoses.Diagnoses[index] = new PatientDiagnosis(myDDL.SelectedValue, new SynergyOnSetDate(new System.DateTime(Year, Month, Day)), "01/02/2011");
break;
}
// Check the index variable here.
}
Комментарии:
1. Нет особого смысла использовать внутренний цикл, если вы прерываетесь после первой итерации без условия…
Ответ №2:
Как и то, что было прокомментировано, трудно сказать, что вы пытаетесь сделать. Согласно сообщению об ошибке в ваших комментариях, этот код выполняется в методе, который возвращает void , что означает, что ваш return
оператор не должен иметь index
после него.