我有一堂这样的课:
public class Order
{
public int Id;
public Person SalesPerson;
...
}
public class Person
{
public int Id;
public string Name;
...
}
我在 LINQ 中编写一个查询,如下所示:
Order[] orders = GetAllOrders();
var myResult = select o from orders
group o by o.SalesPerson.Id into oGroup
select new {SalesPersonId = oGroup.Key, Order = oGroup}
它工作正常。但我将根据 SalesPerson 对象而不是 SalesPersonId 进行分组。当我按 SalesPerson 分组时,即使我实施,它也不能正确分组IEquatable<Person>
界面,但它仍然无法工作。我应该怎么办?
tanx 为您提供帮助。
哦,是的,本杰明·波德尊是对的。我应该覆盖GetHashCode()
方法也。
所以我的课是这样的:
public class Person : IEquatable<Person>
{
public int Id;
public string Name;
...
public bool Equals(Person other)
{
return other == null ? false : this.Id == other.Id;
}
public override int GetHashCode()
{
return this.Id.GetHashCode();
}
}
谢谢
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)