gpt4 book ai didi

c# - 将委托(delegate)与 OR 运算符组合

转载 作者:行者123 更新时间:2023-11-30 12:34:14 25 4
gpt4 key购买 nike

使用 LinqToSQL 在两个不同的表中查找值,并根据在什么结果集中找到的内容合并结果。

如何根据给定条件组合两个函数:

 // a filter for a LinqToSQL query:
Func<ComputerDetail, bool> filter;

// declare the default filter
filter = x => x.ComputerName.Contains(searchTerm);

然后如果满足条件,它想将下面的 lambda 添加到上面的 lambda 中:

 x => computernames.Contains(x.ComputerName)

所以这两者都会导致:

 x => computernames.Contains(x.ComputerName)) ||
x.ComputerName.Contains(searchTerm);

用加号运算符创建多播委托(delegate)似乎几乎可以做到,但是,我不确定在这种情况下如何应用 OR (||):

 filter += computernames.Contains(x.ComputerName) 

注意: computernamesList<String> , ComputerNameComputerDetail 的属性这是一个代表 LinqToSQL

中的 View 的类

最佳答案

如果是 LINQ to SQL,您不想组合两个委托(delegate) - 您想要组合两个表达式树。否则所有过滤都将在客户端完成。

如果是这样的话,我相信你基本上只需要PredicateBuilder - 使用 predicate1.Or(predicate2) 组合两个谓词。

如果您真的想要委托(delegate)形式,您可以采用相同的代码,只需更改所有签名以使用委托(delegate)而不是表达式树。

关于c# - 将委托(delegate)与 OR 运算符组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7584061/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com