我收集了一些笔记。根据请求这些笔记的UI,我想排除某些类别。这只是一个例子。如果项目Notes弹出窗口请求备注,我应该排除集合备注。
Func<Note, bool> excludeCollectionCategory = (ui == UIRequestor.ProjectNotes)
? x => x.NoteCategory != "Collections"
: x => true; //-- error: cannot convert lambda to lambda
我收到以下错误:Type of conditional expression cannot be determined because there is no implicit conversion between 'lambda expression' and 'lambda expression'
感谢您的帮助
答案 0 :(得分:7)
编译器不会推断lambda表达式的委托类型。您需要在第一个三元子句中使用强制转换来指定委托类型:
var excludeCollectionCategory = (ui == UIRequestor.ProjectNotes)
? (Func<Note, bool>)(x => x.NoteCategory != "Collections")
: x => true;
一线希望是你可以使用var
而不必指定变量的类型,所以它不是那么冗长。