public static void AddMatrixItem(int MatrixIDFrom, int MatrixIDTo, DistanceMatrixItem MatrixItem) { MaximumMatrixID = ((MaximumMatrixID < MatrixIDFrom) ? MatrixIDFrom : MaximumMatrixID); MaximumMatrixID = ((MaximumMatrixID < MatrixIDTo) ? MatrixIDTo : MaximumMatrixID); MatrixItemsFrom.Add(MatrixIDFrom); MatrixItemsTo.Add(MatrixIDTo); MatrixItemsInfo.Add(MatrixItem); MatrixCounter++; }
public static void AssembleMatrix() { MaximumMatrixID++; // Needs to be one higher DistanceMatrix = new DistanceMatrixItem[MaximumMatrixID, MaximumMatrixID]; for (int i = 0; i < MatrixCounter; i++) DistanceMatrix[MatrixItemsFrom[i], MatrixItemsTo[i]] = MatrixItemsInfo[i]; // Dispose temporarily objects (or the very least removes their memory usage) MaximumMatrixID = 0; MatrixCounter = 0; MatrixItemsFrom.Clear(); MatrixItemsTo.Clear(); MatrixItemsInfo.Clear(); MatrixItemsFrom = null; MatrixItemsTo = null; MatrixItemsInfo = null; }