檢索我有型好一個簡單的集合,其還具有數據集的對象時,它LINQ的含有不工作,從單一的方法
我得到的數據集對象從孔收集這樣
var dataset = well.Datasets.Single(u=> u.ID == datasetID);
if (dataset!=null)
{
well.Datasets.Contains(dataset);// returns false here
}
根據我的理解,這裏的Contains假設在前面的語句中返回true,我從同一個集合中獲取這個對象。
爲什麼它返回false?
難道你不是指'well.Datasets.Contains(dataset)'? –
我真的很驚訝你沒有遇到編譯器或運行時錯誤與此代碼。 'well.DataSets.Single'永遠不會返回null。如果沒有匹配,它會拋出一個異常(我認爲你想要'SingleOrDefault')。另外,正如Grant提到的那樣,您在'well'上調用'Contains'而不是包含數據集的'well.DataSets'屬性。這會給你一個編譯器錯誤,除非'well'也是一個'IEnumerable',所以如果這段代碼編譯,這就引出了一個問題:什麼數據集是'好的'和'IEnumerable'的? –
@Asad我已經更新了問題,並將代碼更改爲well.Datasets.Contains。此外Single或SingleOrDefault在這裏不是問題,我理解兩者之間的區別。問題是關於Contains方法。我會很感激,如果你可以啓發同樣的。 – MegaMind