Ich versuche, Linq zu verwenden, um eine Liste von IDs mit einer Liste von Objekten zurückzugeben, bei denen die ID eine Eigenschaft ist. Ich möchte dies tun können, ohne jedes Objekt zu durchlaufen und die eindeutigen IDs herauszuholen, die ich finde.
Ich habe eine Liste von Objekten vom Typ MyClass und eine der Eigenschaften dieser Klasse ist eine ID.
public class MyClass
{
public int ID { get; set; }
}
Ich möchte eine Linq-Abfrage schreiben, um mir eine Liste dieser IDs zurückzugeben
Wie mache ich das, wenn es IList<MyClass>
so ist, dass es eine IEnumerable<int>
der IDs zurückgibt ?
Ich bin sicher, dass es möglich sein muss, dies mit Linq in ein oder zwei Zeilen zu tun, anstatt jedes Element in der MyClass-Liste zu durchlaufen und die eindeutigen Werte einer Liste hinzuzufügen.
Jede Hilfe bei der Erstellung einer eleganten Lösung wäre sehr dankbar!
DistinctBy
in MoreLinq haben, das Ihnen eindeutigeMyClass
s basierend auf gibtID
. Verwendung:var distincts = list.DistinctBy(x => x.ID);
Antworten:
quelle
Verwenden Sie den Distinct-Operator :
quelle
Verwenden Sie Straight Linq mit der
Distinct()
Erweiterung:quelle
AUSGABE
1234567890
quelle
Wenn wir Distinct nehmen, müssen wir auch IEnumerable verwenden. Wenn Liste Modell bedeutet, müssen Sie Code wie diesen schreiben
quelle