У меня есть объект под названием User
. Вот мой класс:Список не равен, когда он должен
Я создаю ДВУХ ОБЪЕКТОВ, которые являются точно такими же.
Я хочу видеть, если их Равный, однако, я получаю False
назад.
User user1 = new User()
{
Name = "Test User",
IdNumber = "1000354",
OrgName = "North",
AcctCode = "FTW"
};
User user2 = new User()
{
Name = "Test User",
IdNumber = "1000354",
OrgName = "North",
AcctCode = "FTW"
};
var doesEqual = user1.Equals(user2);
Console.WriteLine(doesEqual); // Returns FALSE
У меня также есть TWO-списки, в которых есть те же объекты, кроме одного.
Когда я делаю Except
, он не хочет работать правильно и возвращает 131.
List<User> ListOne; // Contains 131 User objects
List<User> ListTwo; // Contains 130 User objects
var difference = ListOne.Except(ListTwo);
Console.WriteLine(difference); // Returns 131
Что я делаю не так ??
Смотрите эту статью [MSDN] (https://msdn.microsoft.com/en-us/library/bsc2ak47 (v = vs.110) .aspx) о методе 'Object.Equals'. При сравнении типов значений 'int',' bool', 'long' и т. Д.' Object.Equals' будет выполняться так, как вы ожидаете. – BenM
@BenM - Спасибо, но это не имеет значения. OP сравнивает типы ссылок, а не типы значений. –