2012-01-20 79 views
1

什么是检查linq对象是否从另一个表引用的最佳(最快)方式。通常我这样做,但我想这可能会在更大的桌子上慢。检查linq对象是否被引用

CurrentObject.ReferencingObjects.Count != 0 

这可能会更快。

CurrentObject.ReferencingObjects.FirstOrDefault() != null 

有没有更好的方法?

回答

2

如果ReferencingObjects工具ICollection<T>(它似乎,因为它有一个Count财产),第一个选项可能是实际速度更快,因为Count(对于大多数实现)往往直接存储,所以这实际上是只一个直接查找字段的属性。

但是,如果你正在使用Enumerable.Count()(该方法,而不是一个属性),那么我的首选方法将改为使用方法:

CurrentObject.ReferencingObjects.Any(); 

由于Any()方法非常清楚地显示出你的意图,并一般来说也很快。

相关问题