3

目前我正在搜索我的列表以查找与地址匹配的客户。我需要匹配地址和城市。如何重写我的 lambda 表达式以匹配这两个条件?

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

4

2 回答 2

9

您要查找的关键字是AndAlso. 它将两个单独的检查组合成一个单独的检查,评估是否True两个组件也是True

CustomerList.FindAll(Function(c) c.Address = addressToMatch AndAlso c.City = cityToMatch)
于 2012-05-21T17:20:13.363 回答
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%') 

希望这可以帮助

于 2014-01-17T10:04:38.417 回答