如何在 foreach asp.net 中比较当前项目与下一个项目

Kan*_*asi 2 c# asp.net asp.net-mvc foreach

我有个问题。

我有模型,感谢 foreach,我在页面中显示了该模型。在模型中,我有列(vPeriod),我需要将当前项目(例如vPeriod = 2016)与下一个项目(例如vPeriod = 2017)进行比较,但我不知道如何比较!

foreach(var item in Model)
{
if(current.vPeriod == next.vPeriod)
{
//do something
}
else
{
//do something
}
}
Run Code Online (Sandbox Code Playgroud)

如果我使用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>
                }
            }
Run Code Online (Sandbox Code Playgroud)

真是太可怕了!我可以有许多不同的年份,并且始终需要创建一个包含数据的块和一个用于年份的“foreach”块。

Abh*_*yay 5

您无法使用foreach循环访问下一个元素。相反,您应该使用for循环,并根据数组索引来比较两个值。使用这样的东西

for(int i=0; i<Model.Count-1; i++)
{
   list[i] != list.Last() ? Compare(list[i], list[i+1]) : break;
}
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!