我正在实现一个应用程序,您必须验证某个对象是否在列表中。这种情况发生在.contains
我知道,但是我用XML文件填充我的列表,然后我新检查了列表是否包含这个的对象,因此引用不一样而且{{1}永远都是假的
有谁知道解决这个问题?这是代码:
.Contains
if (qfs.Contains(exa.Question.File))
{
booleansQuestionFile[i] = true;
}
语句始终为false。
答案 0 :(得分:5)
如the documentation中所述,Contains
使用默认的相等比较器。要更改默认行为,请使您的类实现IEquatable<T>
或覆盖Equals
。
答案 1 :(得分:2)
你应该覆盖Equals method这样你可以定义两个对象何时相同。
答案 2 :(得分:1)
答案 3 :(得分:1)
您也可以使用此类代码,它将为您节省更改课程的需要:
if (qfs.Exists(f => f.Question.File.Equals(exa.Question.File)))
{
booleansQuestionFile[i] = true;
}