Domanda

Come faccio a vedere gli elementi in comune tra 2 array di oggetti. Il mio Intersect non restituisce nulla. L'oggetto viene creato da una classe di LINQ to SQL.

È stato utile?

Soluzione

Sarà necessario eseguire l'override del metodo Equals dell'oggetto. Potete trovare alcune linee guida sul sito web di Microsoft.

ho fornito un esempio riportato di seguito:

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

Se non si esegue l'override di questo metodo, qualsiasi tipo di tipo / intersecano / confronto metterà a confronto gli oggetti in base alla loro riferimento; quindi, se due oggetti si riferiscono allo stesso punto in memoria, essi sono considerati "uguale".

Altri suggerimenti

In Java atleat, a meno che non ignorare i .equals operatore (), che metterà alla prova per l'uguaglianza oggetto (essenzialmente mediante ==). Questo potrebbe essere il motivo per cui l'intersezione è vuoto Fai.

Hai l'override del metodo Equals?

Si dovrà ordinare loro, naturalmente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top