Как создать реализацию динамического равенства, в которой вы можете передать имена свойств для сравнения?
Скажем, у меня есть объект Person со свойствами ниже:
public class Person
{
public int ID { get; set; }
public int EmployeeNo { get; set; }
public string JobDescription { get; set; }
public string Code { get; set; }
}
Как бы я динамически проверить равенство конкретных свойств по имени?
например.
var dynamicEqualityComparer = RetrieveDynamicEqualityComparer("ID", "JobDescription");
var intersectedPersons = listOfPerson1.Intersect(listOfPerson2, dynamicEqualityComparer);
Приведенный выше фрагмент кода будет использовать метод пересечения linq по умолчанию с использованием динамически сгенерированного метода сравнения на равенство, который сравнивает только поля «ID» и «JobDescription».
Я бы предположил, что что-то вроде этого было бы легко найти, но пока нет возможности найти что-либо подобное.