LINQ zum Entfernen bestimmter Elemente aus einer IListT basierend auf einer IListint [Duplikat]

8

Verwendung von LINQ zum Entfernen bestimmter Elemente aus einer IList basierend auf einer anderen IList. Ich muss Datensätze von list1 entfernen, wo ID in list2 vorhanden ist. Unten ist das Codebeispiel,

%Vor%

So mache ich es, gibt es einen besseren Weg, das Gleiche zu tun.

    
passionatedeveloper 17.05.2013, 09:58
quelle

3 Antworten

12
___ answer16606313 ___

Sie können list1 für einfacher verwenden:

%Vor%

Aber Sie müssen wirklich an Ort und Stelle entfernen, bevorzugen @ DanielHilgarths Antwort

    
___ tag123c ___ C # (sprich "Cis") ist eine objektorientierte Programmiersprache auf hohem Niveau, die für die Erstellung einer Vielzahl von Anwendungen entwickelt wurde, die auf dem .NET Framework (oder .NET Core) ausgeführt werden. C # ist einfach, leistungsfähig, typsicher und objektorientiert. ___ tag123linq ___ Die Language Integrated Query (LINQ) ist eine Microsoft .NET Framework-Komponente, die native Datenabfragefunktionen zu .NET-Sprachen hinzufügt. Bitte denken Sie bei Bedarf daran, ausführlichere Tags zu verwenden, zum Beispiel [linq-to-sql], [linq-to-entities] / [entity-framework] oder [plinq] ___ tag123ilist ___ Liste kann sich beziehen auf: eine verknüpfte Liste (eine geordnete Menge von Knoten, die jeweils auf ihren Nachfolger verweisen) oder eine Form eines dynamischen Arrays. Um nicht für HTML-Listen verwendet zu werden, verwenden Sie stattdessen [html-lists]. ___ answer16606706 ___

Sie könnten eine "RemoveAll ()" - Erweiterungsmethode für list2 schreiben, die genau wie list1 funktioniert. (Dies ist im Allgemeinen nützlich genug, um in einer gemeinsamen Klassenbibliothek zu bleiben.)

Zum Beispiel (die Fehlerüberprüfung wurde aus Gründen der Übersichtlichkeit entfernt; Sie müssten prüfen, ob die Parameter nicht null sind):

%Vor%

Dann würde das Entfernen der Elemente aus list1 nach Bedarf tatsächlich so einfach werden wie:

%Vor%     
___ qstntxt ___

Verwendung von LINQ zum Entfernen bestimmter Elemente aus einer IList basierend auf einer anderen IList. Ich muss Datensätze von list1 entfernen, wo ID in list2 vorhanden ist. Unten ist das Codebeispiel,

%Vor%

So mache ich es, gibt es einen besseren Weg, das Gleiche zu tun.

    
___ qstnhdr ___ LINQ zum Entfernen bestimmter Elemente aus einer IListT basierend auf einer IListint [Duplikat] ___
Daniel Hilgarth 17.05.2013 10:13
quelle
11

Sie könnten eine "RemoveAll ()" - Erweiterungsmethode für IList<T> schreiben, die genau wie List.RemoveAll() funktioniert. (Dies ist im Allgemeinen nützlich genug, um in einer gemeinsamen Klassenbibliothek zu bleiben.)

Zum Beispiel (die Fehlerüberprüfung wurde aus Gründen der Übersichtlichkeit entfernt; Sie müssten prüfen, ob die Parameter nicht null sind):

%Vor%

Dann würde das Entfernen der Elemente aus list1 nach Bedarf tatsächlich so einfach werden wie:

%Vor%     
Matthew Watson 17.05.2013 10:21
quelle
8

Sie können Where für einfacher verwenden:

%Vor%

Aber Sie müssen wirklich an Ort und Stelle entfernen, bevorzugen @ DanielHilgarths Antwort

    
Cuong Le 17.05.2013 09:59
quelle

Tags und Links