检查是否引用了linq对象

时间:2012-01-20 20:22:28

标签: linq object-reference

检查linq对象是否从另一个表引用的最佳(最快)方法是什么。 Normaly我这样做,但我想这可能在较大的桌子上很慢。

CurrentObject.ReferencingObjects.Count != 0

这可能会更快。

CurrentObject.ReferencingObjects.FirstOrDefault() != null

有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

如果ReferencingObjects实施ICollection<T>(看起来它有Count 属性),那么第一个选项可能实际上更快,因为Count(对于大多数实现而言)通常直接存储,因此这实际上只是直接查找字段的属性。

但是,如果您使用Enumerable.Count()(方法,而不是属性),那么我首选的方法是使用:

CurrentObject.ReferencingObjects.Any();

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