我想比較ParseObject上的兩個關係,並確定它們是否相等,最好不要在關係上調用fetch()。我試過這樣做:在Parse.com中比較關係c#
MyParseObject.Get<ParseObject>("MyRelation") == MyOtherParseObject.Get<ParseObject>("MyRelation")
但它不起作用。我試圖搜索谷歌,但還沒有找到我的問題的答案。是否有可能比較這些關係,而不提取他們的數據?
任何幫助將不勝感激。謝謝。
我想比較ParseObject上的兩個關係,並確定它們是否相等,最好不要在關係上調用fetch()。我試過這樣做:在Parse.com中比較關係c#
MyParseObject.Get<ParseObject>("MyRelation") == MyOtherParseObject.Get<ParseObject>("MyRelation")
但它不起作用。我試圖搜索谷歌,但還沒有找到我的問題的答案。是否有可能比較這些關係,而不提取他們的數據?
任何幫助將不勝感激。謝謝。
我以前沒有用過這個,但是我想我會看看文檔和代碼。
用於確定是否2個ParseObject
實例在ObjectId
屬性狀態的標準的註釋被視爲相等:
一個Parse.ParseObject.ClassName和Parse.ParseObject.ObjectId的組合唯一地標識一個對象你的申請。
因此,如果類名和的ObjectId性質是平等的,這兩個實例才相等:
var my1 = MyParseObject.Get<ParseObject>("MyRelation");
var my2 = MyOtherParseObject.Get<ParseObject>("MyRelation");
return my1.ObjectId == my2.ObjectId && my1.ClassName == my2.ClassName;
,而不必做手工但是,你發現他們提供的會爲你的方法:
return MyParseObject.Get<ParseObject>("MyRelation")
.HasSameId(MyOtherParseObject.Get<ParseObject>("MyRelation"));
從HasSameId文檔:
幫助函數用於檢查兩個ParseObjects是否指向雲中的同一個對象。
這裏就是它的內部做(還有其他的東西太多,但這是比較部分):
return other != null
&& object.Equals((object) this.ClassName, (object) other.ClassName)
&& object.Equals((object) this.ObjectId, (object) other.ObjectId);
關於最近使用的==
標誌的原代碼的說明...
如果ParseObject
類有overloaded the ==
operator並指定它應該比較ClassName和ObjectId,那麼您的原始代碼將工作。
因爲他們沒有重載運營商,而運營商==
的默認行爲是做一個參考比較,並MyParseObject.Get<ParseObject>
和MyOtherParseObject.Get<ParseObject>
在技術上是兩個不同的對象,它返回false
。
沒關係,我找到了我的答案。下面的聲明工作正常。
MyParseObject.Get<ParseObject>("MyRelation").HasSameId(MyOtherParseObject.Get<ParseObject>("MyRelation"))