C#比较两个对象是否相等

时间:2015-04-20 14:08:24

标签: c#

if(setting.ConvertedValue.Equals(m_MatchingModules[i].Group[j]))
{
}

我正在研究一个项目,如果值相等,我需要检查上面的代码。我从不输入if声明。我的ConvertedValue变量的类型为Object,而GroupInt的列表。我在调试器中看到两个值都相等但是.Equals找不到它们。

3 个答案:

答案 0 :(得分:1)

public override bool Equals(object obj)
{
    Test test = obj as Test;
    if (obj == null)
    {
        return false;
    }
    return Value == test.Value &&
        String1 == test.String1 &&
        String2 == test.String2;
}

答案 1 :(得分:0)

尝试使用==代替。 Equals用于检查对象相等性,如果类型不同,则返回false,即使值类型与值类型相同。

someInt.Equals(someLong); // false

someInt == someLong; // true

答案 2 :(得分:0)

尝试使用ValueType.Equals方法。

if(ValueType.Equals(setting.ConvertedValue,m_MatchingModules[i].Group[j]))