1

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

CurrentObject.ReferencingObjects.Count != 0

这可能会更快。

CurrentObject.ReferencingObjects.FirstOrDefault() != null

有没有更好的办法?

4

1 回答 1

2

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

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

CurrentObject.ReferencingObjects.Any();

由于该Any()方法非常清楚地显示了您的意图,而且总体上也非常快。

于 2012-01-20T20:24:46.747 回答