2012-01-20 126 views
1

什麼是檢查linq對象是否從另一個表引用的最佳(最快)方式。通常我這樣做,但我想這可能會在更大的桌子上慢。檢查linq對象是否被引用

CurrentObject.ReferencingObjects.Count != 0 

這可能會更快。

CurrentObject.ReferencingObjects.FirstOrDefault() != null 

有沒有更好的方法?

回答

2

如果ReferencingObjects工具ICollection<T>(它似乎,因爲它有一個Count財產),第一個選項可能是實際速度更快,因爲Count(對於大多數實現)往往直接存儲,所以這實際上是隻一個直接查找字段的屬性。

但是,如果你正在使用Enumerable.Count()(該方法,而不是一個屬性),那麼我的首選方法將改爲使用方法:

CurrentObject.ReferencingObjects.Any(); 

由於Any()方法非常清楚地顯示出你的意圖,並一般來說也很快。

相關問題