具有多个搜索条件的Lambda表达式

时间:2012-05-21 17:18:01

标签: vb.net lambda

目前,我正在搜索我的列表,找到与地址匹配的客户。 我需要匹配地址和城市。如何重写我的lambda Expression以匹配这两个标准?

CustomerList.FindAll(Function(c)c.Address = addressToMatch)

2 个答案:

答案 0 :(得分:9)

您要查找的关键字是AndAlso。它将两个单独的检查组合成一个单独的检查,如果两个组件也是True

,则检查结果为True
CustomerList.FindAll(Function(c) c.Address = addressToMatch AndAlso c.City = cityToMatch)

答案 1 :(得分:0)

有一个nuget包,允许您跨多个属性搜索字符串

https://www.nuget.org/packages/NinjaNye.SearchExtensions/

这将允许以下代码......

CustomerList.Search(addressToMatch, 
                    Function(c) c.Address, 
                    Function(c) c.City)

连接到sql数据库时,生成的sql类似于:

SELECT [Extent1].[Address] AS [Address], 
       [Extent1].[City] AS [City]
FROM   [dbo].[Table] AS [Extent1]
WHERE ([Extent1].[Address] LIKE N'%searchTerm%') 
   OR ([Extent1].[City] LIKE N'%searchTerm%') 

希望这有帮助