Lambda表达式返回错误

Lul*_*ulu 3 c# lambda

这是我的代码:

SomeFunction(m => { 
    ViewData["AllEmployees"].Where(c => c.LeaderID == m.UserID); 
 })
Run Code Online (Sandbox Code Playgroud)

并返回此错误:

并非所有代码路径都返回type的lambda表达式中的值 System.Func<IEnumerable>

Bol*_*ock 12

假设您尝试返回该.Where()查询的结果,则需要删除那些括号和分号:

SomeFunction(m => ViewData["AllEmployees"].Where(c => c.LeaderID == m.UserID))
Run Code Online (Sandbox Code Playgroud)

如果你把它们放在那里,ViewData[...].Where()将被视为一个语句而不是一个表达式,所以你最终会得到一个不应该返回的lambda,从而导致错误.

或者,如果您坚持将它们放在那里,则需要一个return关键字,以便语句实际返回:

SomeFunction(m =>
{
    return ViewData["AllEmployees"].Where(c => c.LeaderID == m.UserID);
})
Run Code Online (Sandbox Code Playgroud)