我想知道为什么当我尝试在重复对象时不将其添加到列表中时仍在添加它

if (thePreviousList.Contains(thePreviousItem))
{
}
else
{
    thePreviousList.Add(thePreviousItem);
}


例如,上一个项目ID = 1,名称= test
如果我还有另一个具有相同ID和名称的对象,它将仍然添加它...

最佳答案

如果您不想覆盖Equals,则可以使用LINQ来检查是否已经存在具有相同ID和名称的对象(不一定是相同的对象):

if (thePreviousList.Any(item => item.ID == thePreviousItem.ID
                             && item.Name == thePreviousItem.Name))
{
}
else
{
    thePreviousList.Add(thePreviousItem);
}

10-06 04:54