首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

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

2013-11-11 
LIST where或select如何动态查找多个条件某功能需要查找出一个LIST中不包含某些字符串,但是这个字条串是按

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();

热点排行