public void Add(Program type) { lock (type) { if (Count == ProgramId.Length) { var newLength = ProgramId.Length + 4; var _ProgramId = new string[newLength]; ProgramId.CopyTo(_ProgramId); ProgramId = _ProgramId; var _Name = new string[newLength]; Name.CopyTo(_Name); Name = _Name; var _Duration = new string[newLength]; Duration.CopyTo(_Duration); Duration = _Duration; var _Limit = new int[newLength]; Limit.CopyTo(_Limit); Limit = _Limit; var _DepartmentId = new string[newLength]; DepartmentId.CopyTo(_DepartmentId); DepartmentId = _DepartmentId; var _Specializations = new SpecializationDM[newLength]; Specializations.CopyTo(_Specializations); Specializations = _Specializations; var _mountedCourseDM = new MountedCourseDM[newLength]; MountedCourses.CopyTo(_mountedCourseDM); MountedCourses = _mountedCourseDM; } ProgramId.Span[Count] = type.ProgramId; Name.Span[Count] = type.Name; Duration.Span[Count] = type.Duration; Limit.Span[Count] = type.Limit; DepartmentId.Span[Count] = type.DepartmentId; Specializations.Span[Count] = new SpecializationDM(length); if (type.Specializations?.Count > 0) { foreach (var t in type.Specializations) { Specializations.Span[Count].Add(t); } } MountedCourses.Span[Count] = new MountedCourseDM(length); if (type.MountedCourses?.Count > 0) { foreach (var t in type.MountedCourses) { MountedCourses.Span[Count].Add(t); } } Count++; } }