/ / Ręcznie zwiększ wartość w zagnieżdżonej pętli for w widoku maszynowym - asp.net-mvc, for-loop, razor

Ręcznie zwiększ wartość w zagnieżdżonej pętli for w widoku maszynowym - asp.net-mvc, for-loop, razor

Mam zagnieżdżoną pętlę z i zmienna pierwsza i j zmienna sekunda. Potrzebuję inkrementować i wartość w zagnieżdżonej pętli for. oto mój kod:

 @for ( i= 0; i < Model.ItemMap.Count() ;i++ )
{
@{var PrevItem = Model.ItemMap.ToList()[i].ItemName;}
@for (j= i; j < Model.ItemMap.Count(); j++)
{
if (PrevItem != Model.ItemMap.ToList()[j].ItemName)
{
break;
}
@i++;
}
}

w którym "@i++;"wyrzuca błąd.

Odpowiedzi:

1 dla odpowiedzi № 1

Twoja składnia wygląda źle. Spróbuj tego

@for (var i = 0; i < Model.ItemMap.Count(); i++)
{
var prevItem = Model.ItemMap.ToList()[i].ItemName;
for (var j = i; j < Model.ItemMap.Count(); j++)
{
if (prevItem != Model.ItemMap.ToList()[j].ItemName)
{
break;
}
i++;
}
}

nie wiesz, dlaczego inkrementujesz dwukrotnie, ale nie powoduje to żadnych błędów składniowych.


0 dla odpowiedzi nr 2

Wszystko czego potrzebujesz, to jest i++, bez @ - Razor wie, że jesteś już w segmencie kodu. Podobnie nie powinieneś używać bloków kodu dla następujących elementów:

@for ( i= 0; i < Model.ItemMap.Count() ;i++ )
{
var PrevItem = Model.ItemMap.ToList()[i].ItemName;
for (j= i; j < Model.ItemMap.Count(); j++)