Verwendung von LINQ Distinct () mit mehreren Feldern

Ich habe folgendesEF-Klasse aus einer Datenbank abgeleitet (vereinfacht)

class Product
{ 
     public string ProductId;
     public string ProductName;
     public string CategoryId;
     public string CategoryName;
}

ProductId ist derPrimärschlüssel des Tisches.

Für eine schlechte Designentscheidung durch den DB-Designer (ich kann sie nicht ändern) habe ichCategoryId undCategoryName in dieser Tabelle.

ich brauche einDropdown-Liste mit (deutlich)CategoryId wieWert undCategoryName wieText. Deshalb habe ich folgenden Code angewendet:

product.Select(m => new {m.CategoryId, m.CategoryName}).Distinct();

mit welcher logik es ein anonymes objekt erstellen sollCategoryId undCategoryName als Eigenschaften. DasDistinct() garantiert, dass es kein Duplikatpaar gibt (CategoryId, CategoryName).

Aber eigentlich klappt es nicht. Soweit ich das verstanden habeDistinct() Funktioniert nur, wenn es nur ein Feld in der Sammlung gibt. Andernfalls werden sie einfach ignoriert. Stimmt das? Gibt es eine Problemumgehung? Vielen Dank!

AKTUALISIEREN

Es tut uns leidproduct ist:

List<Product> product = new List<Product>();

Ich habe einen alternativen Weg gefunden, um das gleiche Ergebnis zu erzielen wieDistinct():

product.GroupBy(d => new {d.CategoryId, d.CategoryName}) 
       .Select(m => new {m.Key.CategoryId, m.Key.CategoryName})

Antworten auf die Frage(8)

Ihre Antwort auf die Frage