如何将ForEach转换为For循环

问题描述 投票:-2回答:1

我正在努力在评级后显示一定数量的评论,我写的代码是有效的,但我意识到它最终显示每个评论的命令,所以如果有两个评论我看到“1评论1评论”。我一直在研究这个问题并且对MVC,C#等有点新鲜,似乎无法弄清楚如何将其更改为将计算ReviewCount并将其显示为单行的for循环表示1个或更多“评论”。我尝试将其传播出来,但后来无法调用局部变量,这就是我被卡住的地方!

@foreach (var review in item.Campaign.Reviews)
    {

        int ReviewCount = 0;
        ++ReviewCount;
        if (ReviewCount > 1)
        {
            @Html.Raw(ReviewCount)
            @Html.Raw(" Reviews")
        }
        else
        {
            @Html.Raw(ReviewCount)
            @Html.Raw(" Review")
        }
    }
c# asp.net-mvc for-loop razor foreach
1个回答
2
投票

如果您只想计算评论,只需使用LINQ Count()方法:

@{ int ReviewCount = item.Campaign.Reviews.Count(); }
@Html.Raw(ReviewCount)
@if (ReviewCount != 1) {
    @Html.Raw(" Reviews")
}
else {
    @Html.Raw(" Review")
}

另外,是DRY

© www.soinside.com 2019 - 2024. All rights reserved.