private Dictionary<string, DataBlock> SplitDataBlocks(DataBlock dataBlock, List<Entity> entitiesNames) { Dictionary<string, DataBlock> dataParts = new Dictionary<string, DataBlock>(); int prevStart = -1; int iStart = 0; List<Tuple<string, string>> linealEntityParentNames = Entity.Linealize(null, entitiesNames); for (int i = 0; i < linealEntityParentNames.Count; i++) { string entity = linealEntityParentNames[i].Item2; iStart = ParseBeginning(dataBlock, linealEntityParentNames[i].Item2, linealEntityParentNames[i].Item1); if (prevStart != -1) { dataParts[linealEntityParentNames[i - 1].Item2] = dataBlock.getPart(prevStart, iStart); } prevStart = iStart; } // guarda el último iStart = dataBlock.data.Length; dataParts[linealEntityParentNames[linealEntityParentNames.Count - 1].Item2] = dataBlock.getPart(prevStart, iStart); return dataParts; }