2010-10-21 47 views
2

问题:我无法访问的项目数在SelectList检索SelectList项目的数量?

我有一个返回的SelectList一个的HtmlHelper方法:

public static SelectList FilterSelectList(this HtmlHelper helper, List<Stuff> eList, string dept) 
{ 
List<Stuff> returnList = new List<Stuff>(); 

//Do Stuff  

return new SelectList(returnList, "ID", "Name"); 
} 

我然后有一个测试这证实了所述过滤器是正确完成:

// Arrange 
List<Stuff> eList = MVCMocks.GetList(); 
string dept = "T"; 
int expectedCount = eList.FindAll(e => e.Dept == dept).Count; 

// Act 
var actual = HtmlHelpers.FilterSelectList(helper, eList, dept); 

// Assert 
Assert.AreEqual(expectedCount, actual.Count, "The list was not properly filtered."); 

调用actual.Count会导致错误。

我希望这只是一个我有一个愚蠢的疏忽,但我一直在我的头上一阵子。证明我是对的! :)

编辑:东西我已经试过

actual.Count 
actual.Count() 
actual.Items.Count() 
actual.GetEnumerator().? 
+0

actual.Count产生了什么错误? – user 2010-10-21 17:43:29

+0

System.Web.Mvc.SelectList不包含'Count'的定义,并且没有扩展方法'Count'接受第一个参数等等等等等等等等。 – morganpdx 2010-10-21 17:57:35

回答

5

你需要actual.Count()actual.Count(注括号!)。

+0

Newp,试过了。没有运气。看到我上面的评论... – morganpdx 2010-10-21 17:57:53

+3

然后你在测试类中没有'使用System.Linq'。 – 2010-10-21 18:19:48

+0

啊哈!那样做了!感谢克雷格:) – morganpdx 2010-10-21 18:21:17