检查linq对象是否从另一个表引用的最佳(最快)方法是什么。 Normaly我这样做,但我想这可能在较大的桌子上很慢。
CurrentObject.ReferencingObjects.Count != 0
这可能会更快。
CurrentObject.ReferencingObjects.FirstOrDefault() != null
有更好的方法吗?
答案 0 :(得分:2)
如果ReferencingObjects
实施ICollection<T>
(看起来它有Count
属性),那么第一个选项可能实际上更快,因为Count
(对于大多数实现而言)通常直接存储,因此这实际上只是直接查找字段的属性。
但是,如果您使用Enumerable.Count()
(方法,而不是属性),那么我首选的方法是使用:
CurrentObject.ReferencingObjects.Any();
由于Any()
方法非常清楚地显示了你的意图,而且一般来说也很快。