标签: Lambda

实用的Mongodb官方驱动辅助扩展方法

因为实测使用Lambda表达式查询的效率并不比标准Api差,所以我希望尽可能地使用Lambda表达式来完成Mongodb的查询工作。 这些扩展方法能够实现便捷的Lambda查询,例如: c.Find(q => !q.性别 && q.身高 > 1.8 && q.存款 > 5000) 当然有些地方还是会需要用到标准Api的,这里也为多条件过滤式查询提供了更方便的调用方式: c.Find(Query<数据>.EQ(q => q.性别, false), Query<数据>.GTE(q => q.身高, 1.8)) 另外也对Javascript代码方式的查询调用方式做了优化,这也是很常用的使用方式,适合于在后台让管理员自定义查询代码进行查询: c.Find(“this.性别==false&&this.身高>=1.89&&this.生日.getFullYear()>=1995”) 但须注意,Javascript使用的是$where方式查询,速度比较慢,上述查询在10万条...

更多

递归选取扩展方法(RecursionSelect)的新重载形式

RecursionSelect是一个极其方便的扩展方法,使用它仅需少量代码即可完成递归操作,从而大大提升编码速度和质量,此扩展方法在我的代码中被高频使用,这是我之前提供过的一个范例: [TestMethod] public void TestMethod13() { //获取指定目录中所有包含子目录的目录集合 var d = new DirectoryInfo(@”C:UsersPublicDownloads”); var c = d.RecursionSelect(f => f.GetDirectories(), f => f.GetDirectories().Length > 0); MessageBox.Show(c.Count().ToString()); } 此方法源于鹤冲天的这篇文章:http://www.cnblogs.com/ldp615/archive/2009/11/09/1599312.html 我曾在我的这篇文章中分享过我自己的实现版本(即RecursionSelect):http://www.cnblogs.com/SkyD/archive/...

更多

Db4o结合Linq、Lambda表达式的简单示例

大多数人接触Db4o的查询,都是从“样本查询”(Query by Example)开始的,这种查询方式简单但不方便,功能和性能也很受局限。以下是引自官方的样本查询示例: // retrievePilotByName Pilot proto=new Pilot(“Michael Schumacher”,0); ObjectSet result=db.get(proto); listResult(result); 这种查询要求我们先建立一个样本,然后再交由Db4o根据此样本返回符合条件的数据,其主要的不便之处在于对类默认值的处理及组合条件查询上,同时其执行性能是很差的。 而当Db4o开始支持.Net 3.5之后,我们就有了更为简单且又十分方便而强大的选择了,让我们来一起领略Db4o与.Net 3.5擦出的火花之美吧:   准备工作 首先创建一个命令行应用程序。 书写一个简单的“学生”类: public class 学生{    static Random R = new Random();  ...

更多