1
如何比較一個列表中的對象?我重載它比較兩個字符串操作==
:C#遍歷一個列表並比較對象
public static bool operator ==(User one, User two)
{
return one.Email == two.Email;
}
,我應該去通過beetween他們比較列表。我已經想出了一個可以完成這項工作的解決方案,但我希望是否有更好的方法來使用LINQ或lambda表達式。
foreach (User u in up)
{
foreach (User u2 in up)
{
if (ReferenceEquals(u, u2)) continue;
if (u == u2) Console.WriteLine("Users {0} and {1} have the same mail.", u.ToString(), u2.ToString());
}
}
重載操作符幾乎不是一個好主意。尤其是在這種情況下,我會說。在你的'User'類中添加一個'Equals()'方法。 [看到這個StackOverflow問答](http://stackoverflow.com/questions/3869601/c-sharp-equals-referenceequals-and-operator) – crush
不要忘記重寫'GetHashCode()' –
@crush這是一個只是爲了瞭解操作員的重載而從學校鍛鍊身體。 – jonjohnson