【发布时间】:2026-02-15 23:05:01
【问题描述】:
我正在尝试计算两个列表之间的差异,我的列表类型具有这种结构:
public partial class Assistance
{
public int Id { get; set; }
public string AssistanceName { get; set; }
public string AssistanceTell { get; set; }
}
这是我的查询:
List<Assistance> assistanceWithoutExpert;
AssistanceJurorRepository assistanceJurorRepository = new AssistanceJurorRepository();
List<Assistance> assistancesWithExpert = assistanceJurorRepository.FindBy(i => i.User.Permission == "Assistance").Select(i => i.Assistance).ToList();
List<Assistance> AllAssitance = GetAll().ToList();
assistanceWithoutExpert = AllAssitance.Except(assistancesWithExpert).ToList();
return assistanceWithoutExpert;
如您所见,我有一个包含所有帮助的列表,称为AllAssitance,还有一个包含expert 的帮助的列表,称为assistancesWithExpert,我需要计算assistanceWithoutExpert。所以,但在执行后结果就是所有记录在AllAssitance 为什么?
最好的问候
【问题讨论】:
-
用你自己的方法覆盖
Equals和GetHashCode方法。 -
@Tony 我不熟悉你所说的这些。你的意思是我应该在 dbcontext 中覆盖该方法?
-
您是否在
Assistance中覆盖了Equals()和GetHashCode()? -
@flindeberg 不,我没有
-
请注意,覆盖
Equals()和GetHashCode()可能有点棘手。您可能想先阅读这些guidelines and rules。但这绝对是要走的路。
标签: c# entity-framework lambda except