如何在C#中检查自定义类数组的相等性?

阿里·托(Ali Tor)

我有一个名为as的自定义类City,该类有一个Equals方法。SequenceEqual将数组与分配的变量进行比较时,方法效果很好。比较包含格式化的元素的两个数组时,会出现问题new City()结果为假。

城市等级:

interface IGene : IEquatable<IGene>
{
    string Name { get; set; }
    int Index { get; set; }
}
class City : IGene
{
    string name;
    int index;
    public City(string name, int index)
    {
        this.name = name;
        this.index = index;
    }
    public string Name
    {
        get
        {
            return name;
        }
        set
        {
            name = value;
        }
    }

    public int Index
    {
        get
        {
            return index;
        }
        set
        {
            index = value;
        }
    }

    public bool Equals(IGene other)
    {
        if (other == null && this == null)
            return true;
        if((other is City))
        {
            City c = other as City;
            return c.Name == this.Name && c.Index == this.Index;
        }
        return false;
    }
}

Test下面方法中,第一个比较结果arrayCompare1true,第二个结果arrayCompare2false两个比较结果都必须为真,但状态不正常。我该如何解决这个问题?

测试代码:

public void Test()
{
    City c1 = new City("A", 1);
    City c2 = new City("B", 2);

    City[] arr1 = new City[] { c1, c2 };
    City[] arr2 = new City[] { c1, c2 };

    City[] arr3 = new City[] { new City("A", 1), new City("B", 2) };
    City[] arr4 = new City[] { new City("A", 1), new City("B", 2) };

    bool arrayCompare1 = arr1.SequenceEqual(arr2);
    bool arrayCompare2 = arr3.SequenceEqual(arr4);

    MessageBox.Show(arrayCompare1 + " " + arrayCompare2);
}
马特

您需要重写Object.Equal如下所示:

public override bool Equals(object other)
{
    if (other is IGene)
        return Equals((IGene)other);
    return base.Equals(other);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在C#中检查自定义类数组的相等性?

来自分类Dev

如何在向NUnit添加自定义相等性的同时还保留默认的相等性检查

来自分类Dev

如何在Swift中为自定义类创建相等性测试?

来自分类Dev

如何检查复杂对象的自定义相等性?

来自分类Dev

C# 计算自定义类数组中的自定义类对象

来自分类Dev

如何在C#中制作自定义颜色?

来自分类Dev

如何在C#中创建自定义事件

来自分类Dev

如何在C#中制作自定义GUI

来自分类Dev

如何在(C#)中创建自定义光标

来自分类Dev

如何在C#中制作自定义颜色?

来自分类Dev

如何在C#中创建自定义事件

来自分类Dev

如何通过自定义类中的变量对自定义类列表进行排序?C#

来自分类Dev

如何在自定义列表视图的自定义适配器类中传递多个数组值?

来自分类Dev

如何使用自定义比较器比较两个数组列表的相等性?

来自分类Dev

Android:如何在自定义类中从strings.xml访问字符串数组?

来自分类Dev

如何在自定义类对象中为动态数组使用DefineProperties-Delphi

来自分类Dev

Android:如何在自定义类中从strings.xml访问字符串数组?

来自分类Dev

如何在自定义类对象中为动态数组使用DefineProperties-Delphi

来自分类Dev

如何在PHP数组中定义自定义键?

来自分类Dev

如何在 sqlalchemy 中“检查”自定义类型

来自分类Dev

在C ++中创建自定义类的本机数组

来自分类Dev

如何将 C# 中的 HttpPost 中的数据作为自定义类接收?

来自分类Dev

自定义类中的 C# StringCollection

来自分类Dev

如何在Laravel 5.1中引用自定义类?

来自分类Dev

如何在Rails中自定义类名的单数

来自分类Dev

如何在Swift中自定义uibutton的类?

来自分类Dev

如何在MVC中绑定自定义模型类

来自分类Dev

如何在Java中创建自定义JButton类?

来自分类Dev

如何在自定义NSManagedObject类中映射关系

Related 相关文章

  1. 1

    如何在C#中检查自定义类数组的相等性?

  2. 2

    如何在向NUnit添加自定义相等性的同时还保留默认的相等性检查

  3. 3

    如何在Swift中为自定义类创建相等性测试?

  4. 4

    如何检查复杂对象的自定义相等性?

  5. 5

    C# 计算自定义类数组中的自定义类对象

  6. 6

    如何在C#中制作自定义颜色?

  7. 7

    如何在C#中创建自定义事件

  8. 8

    如何在C#中制作自定义GUI

  9. 9

    如何在(C#)中创建自定义光标

  10. 10

    如何在C#中制作自定义颜色?

  11. 11

    如何在C#中创建自定义事件

  12. 12

    如何通过自定义类中的变量对自定义类列表进行排序?C#

  13. 13

    如何在自定义列表视图的自定义适配器类中传递多个数组值?

  14. 14

    如何使用自定义比较器比较两个数组列表的相等性?

  15. 15

    Android:如何在自定义类中从strings.xml访问字符串数组?

  16. 16

    如何在自定义类对象中为动态数组使用DefineProperties-Delphi

  17. 17

    Android:如何在自定义类中从strings.xml访问字符串数组?

  18. 18

    如何在自定义类对象中为动态数组使用DefineProperties-Delphi

  19. 19

    如何在PHP数组中定义自定义键?

  20. 20

    如何在 sqlalchemy 中“检查”自定义类型

  21. 21

    在C ++中创建自定义类的本机数组

  22. 22

    如何将 C# 中的 HttpPost 中的数据作为自定义类接收?

  23. 23

    自定义类中的 C# StringCollection

  24. 24

    如何在Laravel 5.1中引用自定义类?

  25. 25

    如何在Rails中自定义类名的单数

  26. 26

    如何在Swift中自定义uibutton的类?

  27. 27

    如何在MVC中绑定自定义模型类

  28. 28

    如何在Java中创建自定义JButton类?

  29. 29

    如何在自定义NSManagedObject类中映射关系

热门标签

归档