Asp.net mvc 如何在ASP.NET Razor MVC4视图中使用LINQ?
我有一个ASP.NET Razor MVC4视图,其中包含以下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="
@使用顶部的语句在页面中包含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++; }
}