我有一个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
来迭代所有元素,但在这种情况下需要访问特定元素。
答案 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++; }
}