This has been set aside for now, being replaced by memory mapped files.
Temporary memory-saving solution until C# 2.0 is officially released. Since an object takes up too much space, DataSet and Score will inherit from a double-typed DataContainer and InformationSet will be removed from the DataContainer inheritance heirarchy.
DataContainer
- Change from column-major format to row-major format
- This will make removing rows less expensive since that operation is performed for often
- Change rows to double[] (from ArrayList)
- Change column names to static array
- Add resize/initialize functionality
- Update NumCols property
- Update Get/SetDataObject
- Update Add/RemoveColumn
- Resize when needed
- Shift empty columns
- Update RemoveColumns
- Update Add/RemoveRow
- Change Filter to return a new DataContainer
- Row-major format will enable the copying of entire rows so filtering will be faster this way
- Update Merge/Append
- Update Trim
- Remove all unused columns
- Add a call to Trim() after operations Load, Merge, Append
DataSet
- Update Load & Save
- Update Get/SetDataPoint
- Update Merge/Append
Score
- Update GenerateScores
- Resize to the number of columns needed
- Update Load & Save
- Update Standardize
InformationSet
- Refactor into a new class that is not a DataContainer
Form1
- Initialize Scores for the total number of columns needed first