public TValue Get(string table, int index) { TValue currValue = null; string table_index = $"{table}_#_{index}"; if (currDic.TryGetValue(table_index, out currValue)) { return(currValue); } if (copyDic.TryGetValue(table_index, out currValue)) { return(currValue); } currValue = dbList.Get(table, index); // 深度复制 var sliceOld = new Slice(); sliceOld.obj = currValue; var sliceNew = JsonHelper.FromJson <Slice>(JsonHelper.ToJson(sliceOld)); copyDic.Remove(table_index); copyDic.Add(table_index, sliceNew.obj); return(sliceNew.obj); }