這是一些示例代碼。我應該重寫哪些方法來使用LINQ Where,Find?
我創造我自己的類:
public class MyObject {
private string _guid;
public int Value;
// other stuff here...
public MyObject() {
_guid = Guid.NewGuid().ToString();
}
}
,我有一些對象我之前創建和其他對象的列表,例如:
MyObject inputObject = new MyObject();
List<MyObject> myObjects = new List<MyObject>();
我想使用它們,如:
myObjects.Where(mo => mo == inputObject).Sum(fo => fo.Value);
等等。 (我相信我的列表中存在具有相同GUID的對象作爲inputObject,這僅僅是一個示例代碼)
的問題是:
如何使用LINQ查詢,這個列表中的Sum,等等?
我應該重寫哪些方法以便通過GUID進行比較,它們應該如何顯示?
使用IEquatable和Equals()方法會更好嗎?
當您檢查''==需要you'd覆蓋'==' - 操作符,但是當您檢查Equals時,您必須重寫該方法。對於'Sum',您不需要重寫,因爲您已將該值彙總到委託中。 – HimBromBeere
@HimBromBeere那麼他們應該如何正確覆蓋?我應該使用IEquatable for MyObject嗎? –
這取決於您的where子句的外觀以及您在哪裏調用的方法。這應該是重寫的方法(也許這種方法依賴於Marc所指出的)。 – HimBromBeere