Wie kann ich Objekte anhand ihres abgeleiteten Typs mit linq-to-objects ausfiltern?
Ich suche nach der Lösung mit der besten Leistung.
Die verwendeten Klassen:
%Vor% Ich kenne drei Methoden: Verwenden Sie das Schlüsselwort is
, verwenden Sie die Methode Except
und die Methode OfType
.
Wenn Sie auch Unterklassen von Duck ausschließen möchten, ist is
am besten. Sie können den Code auf .Where(animal => !(animal is Duck));
Ansonsten ist die Empfehlung von sll für GetType am besten
Nach Differenz zwischen OfType & lt; & gt; () und Beim Eintippen von Where () - Erweiterung entspricht der OfType-Aufruf Ihrer Option (a), allerdings mit ist Duck == true , daher würde ich sagen, dass Sie bei der Option bleiben (a ).
Wenn Sie Duck
oder eine Unterklasse von Duck
nicht zurückgeben möchten, müssen Sie die Methode IsAssignableFrom
verwenden:
Tags und Links c# linq linq-to-objects