C# Как сравнить два списка объектов в методе Equals()C#

Место общения программистов C#
Anonymous
C# Как сравнить два списка объектов в методе Equals()

Сообщение Anonymous »

У меня есть два списка объектов с одинаковыми элементами и значениями:

Код: Выделить всё

parameters = new List
() { new Parameter() { parameterName="value", parameterType="string"} }
Класс параметров выглядит следующим образом:

Код: Выделить всё

 public class Parameter
{
public string parameterName;

public string parameterType;
}
и я хочу сравнить его с идентичным списком объектов с одинаковыми элементами и значениями с помощью модульного теста.

мой класс метода (я создал до объектов метода, в которых хранится список объектов параметров):

Код: Выделить всё

public class Method
{
public List
 parameters { get; set;}

public string modifier { get; set; }

public string name { get; set; }

public string type { get; set; }

public override bool Equals(object obj)
{
return this.modifier == ((Method)obj).modifier && this.name == ((Method)obj).name && this.type == ((Method)obj).type
&& this.parameters == ((Method)obj).parameters;
}
}
Моя проблема заключается в методе Equals, в точке this.parameters == ... :

Код: Выделить всё

public override bool Equals(object obj)
{
return this.modifier == ((Method)obj).modifier && this.name == ((Method)obj).name && this.type == ((Method)obj).type
&& this.parameters == ((Method)obj).parameters;
}
Кстати, все остальные критерии в этом методе работают. Модификатор, имя и тип возвращают правильное значение по сравнению с объектом. Поскольку это базовые строковые значения, сравнение становится намного проще. Все усложняется, когда я хочу сделать то же самое для списка объектов.

Как я могу сравнить два списка объектов-параметров в этом методе Equals(), нужно ли мне сравнивать элементы каждый (например, сравнивать parameterName и parameterType всех объектов в списке)?

Вернуться в «C#»