wenn ich aus Speicherbedarf und Performance Gründen bei Records bleiben möchte bzw. auch muss
...
gibt es keine Option meine Klassse generisch zu lassen (dh. ohne Informationen über die Art der Daten die ich verarbeite) und das Feld FRawData: TArray<T>; mit Daten über eine Klassenfunktion zu befüllen ?
Delphi-Quellcode:
TKMeans<T> = class
private
private
FClusteredData: TClusterList<T>;
FRawData: TArray<T>;
Zum lesen des internen Arrays der Clusterliste (array of T) müsstest du einen direkten Zugriff haben.
Ungefähr sowas wie FClusteredData.List.
Siehe:
https://docwiki.embarcadero.com/Libr...ons.TList.List
Man kann darüber auch iterieren und sich den RangeCheck in TList.GetItem sparen.
Auch brauchst du dann wahrscheinlich keine Doppelung mit FRawData.
Zum Bulk befüllen müsste es diverse AddRange-Methoden geben:
https://docwiki.embarcadero.com/Libr...TList.AddRange