Как я вижу общие элементы между двумя массивами объектов - PullRequest
0 голосов
/ 14 мая 2009

Как мне увидеть общие элементы между двумя массивами объектов. Мое пересечение не возвращает ничего. Объект создается из класса Linq to SQL.

Ответы [ 4 ]

1 голос
/ 14 мая 2009

Вы переопределили метод Equals?

1 голос
/ 14 мая 2009

В Java atleat, если вы не переопределите оператор .equals (), он проверит на равенство объектов (по сути, используя ==). Возможно, именно поэтому пересечение является emtpy.

0 голосов
/ 14 мая 2009

Вам необходимо переопределить метод Equals объекта. Вы можете найти некоторые рекомендации на веб-сайте Microsoft.

Я предоставил образец ниже:

public override bool Equals(System.Object obj)
{
    if (obj != null && obj is MyClass)
    {
        MyClass obj2 = (MyClass)obj;
        return (obj2.ID == this.ID);
    }
}

Если вы не переопределите этот метод, любой вид сортировки / пересечения / сравнения будет сравнивать объекты на основе их ссылки; поэтому, если два объекта ссылаются на одно и то же место в памяти, они считаются «равными».

0 голосов
/ 14 мая 2009

Вам, конечно, придется их отсортировать.

...