6
我看到了一個模式,其中的lambda表達式顯示爲未在代碼覆蓋範圍內顯示,調試器會執行代碼並且沒有條件模塊。Lambda表達式上的代碼覆蓋
public CollectionModel()
{
List<Language> languages = LanguageService.GetLanguages();
this.LanguageListItems =
languages.Select(
s =>
new SelectListItem { Text = s.Name, Value = s.LanguageCode, Selected = false }). // <-- this shows as not covered
AsEnumerable();
}
這有點奇怪。有任何想法嗎?
+1。或者,他可以使用'ToList'而不是'AsEnumerable'並且具有相同的效果。 – Niki 2010-09-13 14:43:38
@nikie:是的,但我希望他專門看到調試器在迭代時跳回到lambda表達式,因爲我覺得這樣可以清楚地知道發生了什麼。 – 2010-09-13 14:46:31
還要注意,如果集合爲空,那麼即使迭代集合也不會調用投影。 – 2010-09-13 17:33:25