Ich muss meine eigene benutzerdefinierte GenericCollection
Klasse entwerfen. Jetzt habe ich viele Möglichkeiten, um es mit IEnumerable
, ICollection
und IList
abzuleiten, wo später einige zusätzliche Funktionalitäten bietet.Benutzerdefinierte Sammlung mit IEnumerable vs ICollection vs IList
Ich bin etwas verwirrt, dass, wenn ich mit IEnumerable<T>
gehe, ich das Objekt deklarieren muss, um tatsächlich die Sammlung zu halten, wie in diesem Fall _list
.
public class GenericCollection<T> : IEnumerable<T>
{
private List<T> _list;
//...
}
Aber wenn ich mit ICollection<T>
oder IList<T>
gehen, ich erfordern nicht das List
Objekt zu erklären, wie es implizit zur Verfügung steht.
public class GenericCollection<T> : IList<T>
{
// no need for List object
//private List<T> _list;
//...
}
Was ist der Unterschied zwischen diesen beiden Ansätzen in Bezug auf Leistung?
In welchem Szenario wird man besonders bevorzugt, wenn es um die Gestaltung einer eigenen Sammlung geht. Ich bin an der leichten Kollektion mit guter Leistung interessiert. Ich denke, dass dies mit IEnumerable<T>
erreicht werden kann, aber wie genau zusammen mit einigen starken Gründen, damit zu gehen?
Ich habe einige vorhandene Beiträge überprüft, aber keine gibt die erforderlichen Informationen.
Returning 'IList' vs 'ICollection' vs 'Collection'
Sie müssen _list member im ersten Beispiel nicht haben. Außerdem müssen Sie noch einige Speichermechanismen implementieren, wenn Sie von IList übernehmen und die öffentliche Schnittstelle in Bezug auf IList implementieren. –