using System; using System.Collections.Generic; using System.Threading; namespace DTLib { public class CompressedArray { public class Array1D where T : IComparable { byte[] Description; T[] Memory; public Array1D() { } public Array1D(T[] sourceArray) => CompressArray(sourceArray); public void CompressArray(T[] sourceArray) { var listMem = new List(); var listDesc = new List(); T prevElement = sourceArray[0]; listMem.Add(sourceArray[0]); listDesc.Add(1); byte repeats = 1; for(int i = 1; i1) { listDesc[listDesc.Count-2]=repeats; repeats=1; } } prevElement=sourceArray[i]; } Memory=listMem.ToArray(); Description=listDesc.ToArray(); ColoredConsole.Write("b", "listMem.Count: ", "c", listMem.Count.ToString(), "b", " listDesc.Count: ", "c", listDesc.Count+"\n"); for(short i = 0; i