我有一个基于我正在使用的条件过滤的集合包含下面给出的子句。 我正在进一步创建一个基于过滤记录的新集合并返回相同的内容。
问题:
如果我在" multipleCodes"中有多个值?在contains子句中使用..它不起作用。 如果我只放1个值......它确实有效。
知道我错过了什么吗?或者是否有更好的方法来过滤记录并仅回溯过滤后的结果集?
collectionToFilter.Where(d => (d.Code.**Contains**(multipleCodes)) &&
d.NeededDate > minNeedDate && d.NeededDate < maxNeedDate)
.ToList()
.ForEach(d => filteredCollection.Add(d));
答案 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));