读书人

LIST where或select怎么动态查找多个条

发布时间: 2013-11-11 14:02:17 作者: rapoo

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();
[解决办法]

引用:
抱歉,可能是我的问题说的不好,上面的高手都会错意了。
string[] titleContains = "AAA,BBB,CCC,DDD,EEE".Split(',')//这个地方是动态的!!!!!!!!!!!可能是别的词,需要的是查找出LIST中不包含AAA且不包含BBB不包含CCC不包含DDD不包含EEE不包含AAA这些词的产品,


如果是全不包含,那么Any就要换成All了:

string[] titleContains = "新品,折扣".Split(',');

List<Item> it = Items.Where(x =>titleContains.All(s=>!x.Title.Contains(s))).ToList();

读书人网 >asp.net

热点推荐