Wie erstellen Sie eine dynamische Gleichheitsimplementierung, in der Sie die zu vergleichenden Eigenschaftsnamen übergeben können?

Angenommen, ich habe ein Objekt Person mit den folgenden Eigenschaften:

    public class Person
    {
        public int ID { get; set; }
        public int EmployeeNo { get; set; }
        public string JobDescription { get; set; }
        public string Code { get; set; }
    }

Wie überprüfe ich dynamisch die Gleichheit bestimmter Eigenschaften nach Namen?

z.B.

var dynamicEqualityComparer = RetrieveDynamicEqualityComparer("ID", "JobDescription");
var intersectedPersons = listOfPerson1.Intersect(listOfPerson2, dynamicEqualityComparer);

Der obige Snippit würde die Standardmethode linq intersect unter Verwendung der dynamisch generierten Gleichheitsvergleichsmethode verwenden, die nur die Felder "ID" und "JobDescription" vergleicht.

Ich würde davon ausgehen, dass so etwas leicht zu finden gewesen wäre, aber bisher nichts dergleichen ausfindig machen konnte.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage