Eigene Typen mit eckigen Klammern erzeugen

Eigene Typen mit eckigen Klammern erzeugen

- Matt

Collection Expressions funktionieren nicht nur für eingebaute Typen. Ein eigener unveränderlicher Sammlungstyp kann sie ebenfalls anbieten:

[CollectionBuilder(typeof(SegmentListe), nameof(SegmentListe.Create))]
public readonly struct SegmentListe
{
    public static SegmentListe Create(ReadOnlySpan<Segment> werte) => new(werte);
}

SegmentListe s = [a, b, c];

Der Compiler ruft die angegebene Fabrikmethode auf und übergibt die Werte als Span, also ohne Zwischenliste auf dem Heap.

Nützlich vor allem für Typen, die in Schleifen erzeugt werden. Für ein DTO, das dreimal am Tag entsteht, ist der Aufwand nicht gerechtfertigt.