Was ist der Unterschied zwischen ReadOnlyCollection und ReadOnlyCollectionBuilder in .Net?
-
28-10-2019 - |
Frage
Heute bin ich auf ein Dilemma gestoßen, was der Unterschied zwischen ReadOnlyCollection<T>
und ReadOnlyCollectionBuilder<T>
in .Net ist.
Im ReadOnlyCollection<T>
-Objekt können keine Elemente hinzugefügt und entfernt werden.
Wo wie im ReadOnlyCollectionBuilder<T>
-Objekt können wir Elemente hinzufügen und entfernen.
Wenn wir Elemente im ReadOnlyCollectionBuilder<T>
-Objekt hinzufügen und entfernen können, warum dann der Name schreibgeschützt?
Lösung
Gemäß der Dokumentation ist ReadOnlyCollectionBuilder
nur ein Builder zum Lesen-nur Sammlungen.Die Idee ist, dass der Builder veränderlich ist, aber nur in einem kleinen Umfang verwendet wird.Sie erstellen einen Builder, fügen eine Menge Elemente hinzu und rufen dann ToReadOnlyCollection
um effizient eine schreibgeschützte Ansicht der Daten zu erstellen.(Dadurch wird der Builder zurückgesetzt, sodass Sie die Möglichkeit vermeiden, die schreibgeschützte Sammlung nach der Erstellung zu mutieren.)