Come faccio a vedere elementi comuni tra i due array di oggetti
-
21-08-2019 - |
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.
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.