【发布时间】:2017-07-05 12:11:05
【问题描述】:
我有一个问题。
我有模型,感谢 foreach,我在页面中显示了这个模型。在模型中我有列(vPeriod),我需要将当前项目(例如vPeriod = 2016)与下一个项目(例如vPeriod = 2017)进行比较,我不知道如何比较!
foreach(var item in Model)
{
if(current.vPeriod == next.vPeriod)
{
//do something
}
else
{
//do something
}
}
如果我使用for,这是最简单的方法。但是我如何使用foreach 做到这一点?
代码查看:
<tr class="line2">
<td></td>
<td></td>
<td></td>
<td></td>
<td style="color: #5f6877;">2016</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
@foreach (var itemData in Model)
{
if (itemData.vPeriod == "2016")
{
<tr class="line3">
<td>@itemData.vAddress</td>
<td>@itemData.vCreateDate</td>
<td>@itemData.iCountOfFloors</td>
<td>@itemData.iCountOfRooms</td>
<td>@itemData.iAreaOfRooms</td>
<td>@itemData.vLastRepairs</td>
<td>@itemData.vType</td>
<td>@itemData.vBelonging</td>
<td>@itemData.vPlanRepairs</td>
</tr>
}
}
<tr class="line2">
<td></td>
<td></td>
<td></td>
<td></td>
<td style="color: #5f6877;">2017</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
@foreach (var itemData in Model)
{
if (itemData.vPeriod == "2017")
{
<tr class="line3">
<td>@itemData.vAddress</td>
<td>@itemData.vCreateDate</td>
<td>@itemData.iCountOfFloors</td>
<td>@itemData.iCountOfRooms</td>
<td>@itemData.iAreaOfRooms</td>
<td>@itemData.vLastRepairs</td>
<td>@itemData.vType</td>
<td>@itemData.vBelonging</td>
<td>@itemData.vPlanRepairs</td>
</tr>
}
}
真的太可怕了!我可以有很多不同的年份,并且一直需要创建一个包含数据的块和一个用于年份的“foreach 块”。
【问题讨论】:
-
好的。但是我有问题,当我使用时。我写了
for(int i = 0; i < Model.Count();i++),之后我就不能用Model[i].vPeriod调用这个项目了。 -
Ofc,因为首先,您必须将集合转换为数组。 var newArray = Model.ToArray();另外,不要忘记检查下一个值是否不在数组边界之外。
-
在您的查看代码中,不清楚 2016 年和 2017 年的案例有什么区别?你到底想做什么?
标签: c# asp.net asp.net-mvc foreach