谓词,解析CSV列表并匹配Linq中的部分值

时间:2012-12-13 18:38:24

标签: asp.net-mvc linq linq-to-entities

我正在使用下面的代码片段来解析表单中的邮政编码列表,然后构建谓词以返回实体中与解析列表中的任何邮政编码匹配的记录。

List<string> zips = ParseCSV("90210,56387,20015");
predicate = predicate.And(n => zips.Contains(n.ZIP));

现在出现了一个新要求,即逗号分隔列表可能包含部分邮政编码,并且也应该返回这些邮政编码。我通常会用Contains来做这件事。 n.ZIP.Contains("902")

但如果拉链列表现在变为如下:

List<string> zips = ParseCSV("902,56387,215"); 
predicate = predicate.And(n => zips.Contains(n.ZIP));

当我已经在拉链上做了一个包含时,我不知道该怎么做。有什么建议吗?

TIA

1 个答案:

答案 0 :(得分:1)

我认为这将检查是否有任何部分邮政编码,包含在ZIP:

predicate = predicate.And(n => zips.Any(z => n.ZIP.Contains(z)));