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

Asp.net mvc 如何在ASP.NET Razor MVC4视图中使用LINQ?,asp.net-mvc,asp.net-mvc-4,razor,Asp.net Mvc,Asp.net Mvc 4,Razor,我有一个ASP.NET Razor MVC4视图,其中包含以下@使用顶部的语句在页面中包含LINQ @using System.Linq 然后我有一个循环,我想在其中访问System.Collections.Generic.Dictionary对象(@Model.content)内容的特定元素。在这种情况下, 元素1->last @for (int i = 1; i < @Model.content.Count; i++) { <li class="

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

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

元素1->last

    @for (int i = 1; i < @Model.content.Count; i++)
    {
        <li class="bullet">
          @Model.content.ElementAt(i)
        </li>
    }
@for(int i=1;i<@Model.content.Count;i++)
{
  • @Model.content.ElementAt(一)
  • }
    我收到以下错误

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

    在这个Razor视图中使用LINQ需要做什么


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

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

    您将使用
    ElementAt
    多次迭代您的集合。随着收藏的增加,性能将变得非常糟糕

    您最好使用foreach循环并自己跟踪索引(如果有点不正确,请原谅razor语法):

    @{var counter=0;}
    @foreach(var kvp in@Model.content)
    {
    @如果(计数器>0){
    
  • @kvp.值
  • } @{计数器++;} }
    这是针对MVC3的,但它可能仍然相关:
    @{ var counter = 0; }
    
    @foreach(var kvp in @Model.content)
    {
        @if(counter > 0){
            <li class="bullet">
                @kvp.Value
            </li>
        }
        @{ counter++; }
    }