当前位置:编程学习 > C#/ASP.NET >>

请教一下关于筛选List<T>的问题

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

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

引用 1 楼 gxttr 的回复:
啥叫不支持Like关键字? 用StartsWith,EndsWith,Contains做等价替换就可以了啊
C# code

            List<string> list = new List<string>();

            list.AddRange(new string[]{"Test1","Test2","T3"});

            list ……
--------------------编程问答-------------------- 可以变通,.net4.0已将StartsWith,EndsWith,Contains等方法优化成sql like的方式,单个where不方便实现时,可以考虑多个where等等。 --------------------编程问答-------------------- 有例子可以参考一下吗?

引用 3 楼 lxh0129 的回复:
可以变通,.net4.0已将StartsWith,EndsWith,Contains等方法优化成sql like的方式,单个where不方便实现时,可以考虑多个where等等。
--------------------编程问答-------------------- 啥叫“Linq Dynamic速度好像不错”?不懂。 --------------------编程问答-------------------- 我想你应该知道Linq Dynamic扩展吧?若果我理解有误,请关注题意!还不理解?Next,你懂的
引用 5 楼 sp1234 的回复:
啥叫“Linq Dynamic速度好像不错”?不懂。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,