如何在ASP.NET Razor MVC4视图中使用LINQ?

时间:2013-04-29 16:14:26

标签: asp.net-mvc asp.net-mvc-4 razor

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

@using System.Linq

然后我有一个循环,我想访问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需要做什么?

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

1 个答案:

答案 0 :(得分:4)

你可以为你的目的使System.Linq工作,但我强烈建议反对它。

您最终会使用ElementAt多次迭代您的收藏集。随着您的收藏增长,性能将会非常糟糕。

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

@{ var counter = 0; }

@foreach(var kvp in @Model.content)
{
    @if(counter > 0){
        <li class="bullet">
            @kvp.Value
        </li>
    }
    @{ counter++; }
}