¿Cómo se crea una implementación de igualdad dinámica donde se pueden pasar los nombres de propiedades que se compararán?
Digamos que tengo una persona objeto con las siguientes propiedades:
public class Person
{
public int ID { get; set; }
public int EmployeeNo { get; set; }
public string JobDescription { get; set; }
public string Code { get; set; }
}
¿Cómo puedo verificar dinámicamente la igualdad de propiedades específicas por nombre?
p.ej.
var dynamicEqualityComparer = RetrieveDynamicEqualityComparer("ID", "JobDescription");
var intersectedPersons = listOfPerson1.Intersect(listOfPerson2, dynamicEqualityComparer);
El fragmento de código anterior usaría el método de intersección de linq predeterminado utilizando el método de comparación de igualdad generado dinámicamente que solo compara los campos "ID" y "Descripción del trabajo".
Supongo que algo como esto hubiera sido fácil de encontrar, pero hasta ahora no he podido localizar nada por el estilo.