gpt4 book ai didi

c# - 如何对 linq 中的引用类型属性进行分组?

转载 作者:行者123 更新时间:2023-11-30 22:47:15 26 4
gpt4 key购买 nike

我有这样一个类:

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>,它也没有正确分组界面,但它仍然不起作用。我应该怎么办?

感谢您的帮助。

最佳答案

哦,是的,Benjamin Podszun 是对的。我也应该覆盖 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();
}
}

谢谢

关于c# - 如何对 linq 中的引用类型属性进行分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2301590/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com