Как создать реализацию динамического равенства, в которой вы можете передать имена свойств для сравнения?

Скажем, у меня есть объект 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».

Я бы предположил, что что-то вроде этого было бы легко найти, но пока нет возможности найти что-либо подобное.

Ответы на вопрос(2)

Ваш ответ на вопрос