Erstellen Sie Neue Distinct-Liste(von T) aus der Vorhandenen Liste(von T) Verwenden von LINQ
Wie bekomme ich eine neue distinct-Liste aus einer bestehenden Liste unter Verwendung von LINQ? Dies ist, was ich habe, so weit und es ist nicht unterscheidbar, aber nicht geben mir eine neue Liste.
Dim tmpQryColumn = (From a In _allAudits
Select New CheckBoxListItem
With {.Id = a.AuditColumn, .Name = a.AuditColumn}
).Distinct()
_columnList = New List(Of CheckBoxListItem)(tmpQryColumn)
InformationsquelleAutor knockando | 2011-06-01
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich vermute, das problem ist, dass
CheckboxListItem
nicht überschreibenEquals
/GetHashCode
so alle zwei Instanzen werden effektiv verschiedene. Versuchen:Ich bin sicher, es gibt eine einfachere Schreibweise in VB, aber ich bin nicht vertraut genug mit der syntax zu schreiben. Die C# - version wäre:
InformationsquelleAutor Jon Skeet
Den
Distinct
Erweiterung Methode stützt sich auf die Typen in Frage, die die ordnungsgemäße Durchführung Wert der Gleichheit. Der wahrscheinlichste Grund, dass es hier nicht ist, dassCheckBoxListItem
nicht umsetzen Gleichheit auf der Grundlage derId
undName
Eigenschaften.Dies zu beheben, führen Sie einen der folgenden
CheckBoxListItem
IEqualityComparer<CheckBoxListItem>
und verwenden Sie die überlastung vonDistinct
nimmt den WertInformationsquelleAutor JaredPar