LINQ Contains子句 - 标准中的多个值

时间:2017-06-06 20:05:33

标签: linq

我有一个基于我正在使用的条件过滤的集合包含下面给出的子句。 我正在进一步创建一个基于过滤记录的新集合并返回相同的内容。

问题

如果我在" multipleCodes"中有多个值?在contains子句中使用..它不起作用。 如果我只放1个值......它确实有效。

知道我错过了什么吗?或者是否有更好的方法来过滤记录并仅回溯过滤后的结果集?

collectionToFilter.Where(d => (d.Code.**Contains**(multipleCodes)) &&
                d.NeededDate > minNeedDate && d.NeededDate < maxNeedDate)
                    .ToList()
                    .ForEach(d => filteredCollection.Add(d));

2 个答案:

答案 0 :(得分:2)

collectionToFilter.Where(d => (multipleCodes.Any(mc=>d.Code.Contains(mc))) &&

答案 1 :(得分:1)

根据您的评论,我想向您展示更清晰,更易读的答案。

var _multipleCodes = multipleCodes.Split(',');
collectionToFilter.Where(d => _multipleCodes.Contains(d.Code));