如果有可能,如何检查for循环的最后一个索引?

时间:2016-12-22 15:34:36

标签: loops for-loop razor model-view-controller

希望这是一个简单的问题,我试着按照自己的意愿去做。但我无法解决剩下的部分。

对于每一行,我想检查日期是否更高或更低等于最后一行。但是如何?

正如您在图像和示例代码中看到的那样。

Click and see the image exsample

以下代码:

@using Scoutpocket.Models.Database;
@model Tuple<List<Properties>, List<SubProperties>, List<Rating>>

<div class="container">

    @foreach (var item in Model.Item1)
    {
        <br />
        <br />
        <b>
            @item.PropertiesName
        </b>

        <br />




        foreach (var item2 in item.SubProperties)
        {
            @item2.SubPropertiesName<br />

            int count = 2;
            int getLast = 1;


            foreach (var item3 in item2.rating.Where(x => x.PlayerID == 1).Take(count).OrderByDescending(x => x.Date))
            {

                for (int i = 0; i < getLast; i++)
                {
                    // Check the index of the last row, and check if the current date is lower or heighter.


                    <b>Compare date on last and newst</b>
                }

                <span>Rating ID: @item3.RatingID</span>
                <span> | </span>
                <span>Value: @item3.Value</span>
                <span> | </span>
                <span>ScoutID: @item3.ScoutID</span>

                <span> | </span>
                <span>PlayerID: @item3.PlayerID</span>

                <span> | </span>
                <span>Date: @item3.Date</span>
                <br/>
            }

        }
    }

</div>

1 个答案:

答案 0 :(得分:0)

如果您使用List类型,则可以轻松使用Count来获取大小,并list.Count - 1获取最后一个索引。这将返回最后一个元素;确保验证计数,可能会引发其他明智的索引超出范围。 例如,

var _dateHigh = Model.Item1.Last(); // extension methods
// same for dateLow
@foreach (var item in Model.Item1) {
    // run the code here.
}

如果最后一个元素随每次迭代而变化,那么我建议在循环中使用嵌套变量。我们无能为力,因为您没有共享模型结构,因此我们可以帮助的更少。

How can I find the last element in a List<> ?