private void RewriteEntryList <T>(EntryList <T> entryList, IComparer <T> comparer = null) where T : EntryBase { if (entryList == null) { return; } var length = entryList.Count * SyncEntry.Size; var syncListItems = entryList.ToList(); if (comparer != null) { syncListItems.Sort(comparer); } var syncList = new BinaryContainer(length); foreach (var entry in entryList) { RewriteEntry(entry.Entry, entry.AllBytes); } var i = 0; foreach (var entry in syncListItems) { var item = ModelFactory.GetModel <SyncEntry>(syncList, i * 16); item.EntryId = entry.Entry.Id; item.SyncId = 0; //_syncId++; //? i++; } if (entryList.SyncList != null) { RewriteEntry(entryList.SyncList.Entry, syncList.ReadAll()); } if (entryList.SyncData != null) { RewriteEntry(entryList.SyncData.Entry, entryList.SyncData.AllBytes); } }