2015-09-28 44 views
2

我有ViewBag中的对象列表。有什么办法来检查该项是否是Razor视图中该ViewBag的最后一个?ViewBag检测最后一项MVC

@if (ViewBag.List != null) 
{ 
    foreach(var item in ViewBag.List) 
    { 
     if(item[0] == **LAST ITEM**) // here I want to check if it is the last item in my ViewBag.List 
     { 
      /* do stuff */ 
     } 
    } 
} 

编辑:我店有多年的作为一个匿名对象

public object GetYears(){ 
    return result.Distinct().OrderBy(i => i.startYear).Select(c => new[] 
       { 
        c.startYear 
       }); 
} 

ViewBag.List = GetYears(); 
+1

你在ViewBag.List stroing什么用使用Count和accesing元素的传统方式证明代码。 – Mairaj

+0

'ViewBag.List'它是什么类型? 'List','Array' .... – frikinside

回答

4

如果ViewBag.List工具IEnumerable<T>你可以使用Last() 您将需要cast列表中你ViewBag以的IEnumerable访问方法或索引访问,我会假设startYear是一个int

@if (ViewBag.List != null) 
{ 
    var last_item = (ViewBag.List as IEnumerable<int[]>).Last(); 
    foreach(var item in ViewBag.List) 
    { 
     if(item[0] == last_item[0]) // here I want to check if it is the last item in my ViewBag.List 
     { 
      /* do stuff */ 
     } 
    } 
} 

或者您也可以通过index

@if (ViewBag.List != null) 
{ 
    IEnumerable<int[]> viewbag_list = (ViewBag.List as IEnumerable<int[]>); 
    var last_item = viewbag_list[viewbag_list.Count()-1]; 
    foreach(var item in ViewBag.List) 
    { 
     if(item[0] == last_item[0]) // here I want to check if it is the last item in my ViewBag.List 
     { 
      /* do stuff */ 
     } 
    } 
} 
+0

ViewBag没有像Count()或Last()这样的函数,我已经试过:) – GrandaS

+2

当然,ViewBag没有那个方法,但List存储在viewbag中是IEnumerable,并hasit。可能你需要做一个演员阵容。我做了一个编辑。 – frikinside

+0

我用不同的方式更新了答案,并使用viewbag列表进行了投射。它应该工作,如果没有,请告诉我。 – frikinside

相关问题