项目中的数据都以List<T>的数据形式存放在Cache中,请问有什么方法可以按条件快速筛选出数据呢?
FindAll的速度太慢,Linq Dynamic速度好像不错,但是不支持Like关键字。各位还有其他想法吗?

解决方案 »

  1.   

    啥叫不支持Like关键字? 用StartsWith,EndsWith,Contains做等价替换就可以了啊            List<string> list = new List<string>();            list.AddRange(new string[]{"Test1","Test2","T3"});            list = (from s in list
                       where s.StartsWith("Test")
                       select s).ToList();            list.ForEach(s => Console.WriteLine(s));
      

  2.   

    我希望以这种方式查询:
    .Where("id = @0 , name like @1 ", 1, "jack")
    还有,例如sql:select name like '%jack',查询以'jack'开头的name值,该怎么查询?
      

  3.   

    可以变通,.net4.0已将StartsWith,EndsWith,Contains等方法优化成sql like的方式,单个where不方便实现时,可以考虑多个where等等。
      

  4.   

    啥叫“Linq Dynamic速度好像不错”?不懂。
      

  5.   

    我想你应该知道Linq Dynamic扩展吧?若果我理解有误,请关注题意!还不理解?Next,你懂的