这是一些示例代码。我应该重写哪些方法来使用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