Как создать реализацию динамического равенства, в которой вы можете передать имена свойств для сравнения?
Скажем, у меня есть объект 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 по умолчанию с использованием динамически сгенерированного метода сравнения на равенство, который сравнивает только поля "Я БЫ" а также "Описание работы".
Я бы предположил, что что-то вроде этого было бы легко найти, но до сих пор не удалось найти ничего подобного.