Ich möchte eine Klasse erstellen, die von CollectionBase
erbt, aber es scheint, dass es LINQ-Erweiterungen nicht unterstützt!
Wird es immer noch unterstützt? Oder gibt es eine alternative Lösung?
Es wird immer noch unterstützt , aber es ist veraltet. Sie sollten immer die in der System.Collections.Generic
oder der System.Collections.ObjectModel
Namespaces stattdessen.
Sie können auch von einer der generischen Sammlungen erben, um Ihre eigene, stark typisierte Sammlung zu erstellen. Und es wird volle Unterstützung für LINQ haben, da sie bereits IEnumerable<T>
implementieren.
Entweder List<T>
oder Collection<T>
sind gute Optionen für Ihren Fall.
Vermeiden Sie die nicht generischen Sammlungen wie CollectionBase
, ArrayList
und HashTable
wenn möglich. Es gibt eine Leistungseinbuße bei deren Verwendung, und sie bieten (falls überhaupt!) Nur wenige Vorteile gegenüber den generischen Versionen, die in neueren Versionen des Frameworks eingeführt wurden.
Linq-Erweiterungen werden für IEnumerable<T>
(Generic) und
Verwenden Sie stattdessen System.Collections.ObjectModel.Collection<T>
.
Tags und Links .net c# collections collectionbase