Я не уверен, что происходит.модель не обновляется внутри foreach
docsRelacionadosModel
это модель, которая имеет такую структуру:
docsRelacionadosModel.idDocTipo
, который является целое
и имеет те elementes: [0]:76 , [1]:76, [2]:74
В этом коде:
int i = 0;
foreach (var m in docsRelacionadosModel)
{
resultadoDialogModel dialogTemp = new resultadoDialogModel();
if (i == 0) //FIRST TIME
{
idTipoSendoVerificado = m.idDocTipo; //HERE GETS '46'
}
else
{
// Here, first time is equal ([0]46 == [1]46)
if (m.idDocTipo == idTipoSendoVerificado)
{
//if there where no more element, but do not get here
if (i == (docsRelacionadosModel.Count() - 1))
{
dialogTemp.tipo = m.idDocTipo;
dialog.Add(dialogTemp);
}
}
else //For the third and also the last time [1]46 != [2]44
{
dialogTemp.tipo = idTipoSendoVerificado; //Should be 46
dialog.Add(dialogTemp); //Save tempModel in model
idTipoSendoVerificado = m.idDocTipo; //Update id been verified
if (i == (docsRelacionadosModel.Count() - 1)) // And it is the last index
{
dialogTemp.tipo = idTipoSendoVerificado; //Here should be 44
dialog.Add(dialogTemp); //Save tempModel in model
}
}
i++;
}
}
сейчас когда я печатаю значение dialog.tipo
я должен получить [0]:46/[1]:44
Но я получаю [0]:44/[1]:44
Я не уверен, если это происходит потому, что значение передается в качестве ссылки так, когда я меняю idTipoSendoVerificado
для третьего iteraction он изменяет alread сохраненное значение в модели.
Если это сбивает с толку, сообщите мне, и я попытаюсь исправить ситуацию для лучшего понимания.
У вас есть (i! = 0)? – gabba
Это действительно сбивает с толку. Попробуйте выполнить код в отдельном проекте и удалите строки, которые вам не нужны, чтобы показать проблему. Вы положили 'i ++' в то место, которое не будет достигнуто сейчас, и мы не знаем, что другой код может делать с побочными эффектами. Я также не уверен, откуда берутся 46, так как у вас есть 3 экземпляра какого-либо класса (укажите это тоже, пожалуйста), с 'idDocTipo' значениями 76, 76 и 74. –