Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在lambda表达式内调用函数_C#_Function_Lambda - Fatal编程技术网

C# 在lambda表达式内调用函数

C# 在lambda表达式内调用函数,c#,function,lambda,C#,Function,Lambda,在C语言中,是否可以在lambda表达式中调用函数 例如,以下是lambda表达式的一些内容: (a => a.testBool && a.testBool2) 是否可以将上述内容写入函数,并在lambda表达式内调用该函数以获得相同的结果 提前谢谢 编辑 在我最初的帖子中,我没有声明这是针对dbSet的 我在测试对象a中创建了以下函数,如下所示: public bool testBool() { return true; } 调用以下代码时: (a =>

在C语言中,是否可以在lambda表达式中调用函数

例如,以下是lambda表达式的一些内容:

(a => a.testBool && a.testBool2)
是否可以将上述内容写入函数,并在lambda表达式内调用该函数以获得相同的结果

提前谢谢

编辑

在我最初的帖子中,我没有声明这是针对dbSet的

我在测试对象a中创建了以下函数,如下所示:

public bool testBool()
{
    return true;
}
调用以下代码时:

(a => a.testBool()).ToList()
我得到这个错误:

LINQ to实体无法识别“Boolean testBool”方法 方法,而此方法无法转换为存储表达式


当然,如果它是在类a中声明的函数

public class a
{
    bool testBool()
    {
     ...
    }

    bool testBool2()
    {
     ...
    }
}
然后你可以做:

ListA.Where(a => a.testBool() && a.testBool2()).ToList();

当然,您可以从lamda调用方法,lambda也是方法。它们没有什么特别之处。因此,您可以在普通方法中执行任何操作。您是否尝试将上述内容写入函数,并在lambda中调用该函数?您是使用lambda创建委托还是创建表达式树?如果您试图创建一个委托,这很容易。如果你试图创建一个表达式树,这仍然是可能的,但要复杂得多。这确实有效吗?用空函数?你是对的,更正了答案;该方法需要返回一个布尔值;它应该是Linq到对象。不要尝试使用Linq到SQLQ您是否将lambda中的“a”的投影实例与类“a”混淆了。在您的示例中,您在哪里实例化?@DaveBecker?我假设ListA是已经包含项的列表的实例。答案的这一部分在我看来没问题。