Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.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搜索不同ID的可变数量的更快方法_C#_Linq_Lambda - Fatal编程技术网

C# Lambda搜索不同ID的可变数量的更快方法

C# Lambda搜索不同ID的可变数量的更快方法,c#,linq,lambda,C#,Linq,Lambda,可能吗?您可以使用PredicatorBuilder类。这是一个关于lambda表达式的一些扩展方法的著名课程。请查看此链接: 在you项目中添加此类后,您可以执行以下操作: List<vw_UsuarioPerfilAtributo> teste = new List<vw_UsuarioPerfilAtributo>(); teste.add(context.Find(Id)); var result = list.Where(x => co

可能吗?

您可以使用
PredicatorBuilder
类。这是一个关于lambda表达式的一些扩展方法的著名课程。请查看此链接:

在you项目中添加此类后,您可以执行以下操作:

    List<vw_UsuarioPerfilAtributo> teste = new List<vw_UsuarioPerfilAtributo>();
    teste.add(context.Find(Id));
var result = list.Where(x => condition).And(x => condition).Or(x => condition).ToList();

也许你需要这样的东西:

    List<vw_UsuarioPerfilAtributo> teste = new List<vw_UsuarioPerfilAtributo>();
    teste.add(context.Find(Id));
var result = list.Where(x => condition).And(x => condition).Or(x => condition).ToList();
以及:

Func expressionPerfil=Perf=>myFunction(Perf);
或者只是:

Func<vw_UsuarioPerfilAtributo, bool> expressionPerfil = Perf => myFunction(Perf);
Func expressionPerfil=Perf=>Keys.Any(_key=>Perf.Id==_key | |/*此处的其他条件*/);

我想这比我想象的要快

Func<vw_UsuarioPerfilAtributo, bool> expressionPerfil = Perf =>
  foreach(int _key in Keys){
    Perf.Id == _key ||
  }
teste.add(context.Find(Id))


在本例中,
context.Find(id)
(其中context是一个
列表
)返回找到的元素,而前面的代码返回一个布尔值,因为
Func

你能提供更多的上下文吗?你可以调查Secification模式。Keys.Any,太好了,我明天会测试,所以给出反馈。谢谢对不起,我有假期,但是钥匙。任何工作都很好!!但关于第一个,返回有问题,我试图创建一个布尔列表,但只需要投一个。。。所以我不能用第一种形式,看问题是只有一次还击。谢谢问题用第二选择解决了。哦,对不起,是我的错。现在应该可以了。