LIST where或select如何动态查找多个条件
某功能需要查找出一个LIST中不包含某些字符串,但是这个字条串是按用户不用的。如何做成动态区分它。
相关代码:
string[] titleContains = "新品,折扣".Split(',');//此条件记录在数据库,条件不定
List<Item> it = Items.Where(x => x.Title.Contains("新品") == false && x.Title.Contains("折扣") == false).ToList();
有时候titleContains ="已下架,无库存"等,所以需要动态地区分,如何做那个WHERE(或SELECT)条件的动态形式。谢谢啦。
------解决方案--------------------Where在Linq to Objects可以写成方法体:
List<Item> it = Items.Where(x => {
if (titleContains == "已下架,无库存")
{
...
}
else
{
return !x.Title.Contains("新品") && !x.Title.Contains("折扣");
}
}).ToList();
------解决方案--------------------
如果是全不包含,那么Any就要换成All了:
string[] titleContains = "新品,折扣".Split(',');
List<Item> it = Items.Where(x =>titleContains.
All(s=>!x.Title.Contains(s))).ToList();