4

我有一个 ASP.NET Razor MVC4 视图,顶部有以下@using语句以包含LINQ在页面中。

@using System.Linq

然后我有一个循环,我想在其中访问 a 内容的特定元素System.Collections.Generic.Dictionary object (@Model.content)。在这种情况下,

元素 1-> 最后一个。

    @for (int i = 1; i < @Model.content.Count; i++)
    {
        <li class="bullet">
          @Model.content.ElementAt(i)
        </li>
    }

我收到以下错误。

“System.Collections.Generic.Dictionary”不包含“ElementAt”的定义

我需要做什么才能在此 Razor 视图中使用 LINQ?

我知道我可以使用 aforeach来迭代所有元素,但在这种情况下需要访问特定元素。

4

1 回答 1

4

您可以使 System.Linq 为您的目的工作,但我强烈建议不要这样做。

您最终会通过使用多次迭代您的集合ElementAt。随着您的收藏增加,性能会很糟糕。

你最好使用foreach循环并自己跟踪索引(如果它有点偏离,请原谅剃刀语法):

@{ var counter = 0; }

@foreach(var kvp in @Model.content)
{
    @if(counter > 0){
        <li class="bullet">
            @kvp.Value
        </li>
    }
    @{ counter++; }
}
于 2013-04-29T16:22:33.687 回答