Implementierung der IList-Schnittstelle

8

Ich bin neu bei Generika. Ich möchte meine eigene Sammlung implementieren, indem ich sie von IList<T> interface ableite.

Können Sie mir bitte einen Link zu einer Klasse geben, die IList<T> interface implementiert oder mir einen Code zur Verfügung stellt, der mindestens Add und Remove Methoden implementiert?

    
Ashish Ashu 24.07.2009, 08:33
quelle

5 Antworten

14

Wenn Sie keinen zwingenden Grund haben, dies zu tun, ist es am besten, von System.Collections.ObjectModel.Collection<T> zu erben, da es alles enthält, was Sie brauchen.

Bitte beachten Sie, dass, obwohl die Implementierer von IList<T> nicht this[int] (indexer) als O (1) implementieren müssen (grundsätzlich Zugriff mit konstanter Zeit), wird dringend empfohlen, dies zu tun.

    
Anton Gogolev 24.07.2009, 08:43
quelle
24

Zusätzlich zur Ableitung von List<T> können Sie die Fassade List<T> hinzufügen und Ihrer Fassadenklasse weitere Funktionen hinzufügen.

%Vor%     
tranmq 24.07.2009 08:59
quelle
2

Sie können sich das Mono-Projekt ansehen. Es gibt vollständige Quellcodes, so dass Sie schauen können, wie einige Klassen implementiert sind. Zum Beispiel "System.Collections.Generics.List & lt; T & gt;".

    
TcKs 24.07.2009 08:36
quelle
1

In den meisten Fällen können Sie einfach List<T> verwenden oder von List<T> ableiten. Wenn Sie von List<T> ableiten, erhalten Sie automatisch die Implementierung für Hinzufügen und Entfernen.

    
chikak 24.07.2009 08:39
quelle
0

Das Vererben von List ist oft der schnellste Ansatz, kann aber später in der Zeile einschränken, wenn Sie von einer anderen Klasse erben müssen (z. B. ContextBoundObject usw.). Es ist ziemlich schnell zu implementieren IList und wie oben erwähnt, gibt es viel mehr Flexibilität.

    
Zotak 04.02.2011 10:08
quelle

Tags und Links