private IStatResult AddDate(IStatResult curStatResult, string date) { List <string> columns = new List <string>(); List <string[]> statRows = new List <string[]>(); List <string> rowTemp = new List <string>(); columns.AddRange(curStatResult.Columns); columns.Insert(1, "时间"); for (int i = 0; i < curStatResult.Rows.Length; i++) { rowTemp.AddRange(curStatResult.Rows[i]); rowTemp.Insert(1, date); statRows.Add(rowTemp.ToArray()); rowTemp.Clear(); } StringArrayComparer comparer = new StringArrayComparer(true); statRows.Sort(comparer); return(new StatResult("", columns.ToArray(), statRows.ToArray())); }
private IStatResult MergeResult(IStatResult befStatResult, IStatResult lastStatResult, string proDate, string date) { List <string> columns = new List <string>(); List <int> AddColumnIndex = new List <int>(); Dictionary <int, int> DYColumnIndex = new Dictionary <int, int>(); List <string[]> statRows = new List <string[]>(); columns.AddRange(befStatResult.Columns.ToArray()); bool dySuccess = false; for (int i = 0; i < lastStatResult.Columns.Length; i++) { dySuccess = false; for (int j = 0; j < befStatResult.Columns.Length; j++) { if (lastStatResult.Columns[i] == befStatResult.Columns[j]) { DYColumnIndex.Add(j, i); dySuccess = true; break; } } if (!dySuccess) { columns.Add(lastStatResult.Columns[i]); AddColumnIndex.Add(i); } } bool containtTime = columns.Contains("时间"); List <string> rowTemp = new List <string>(); if (!containtTime) { columns.Insert(1, "时间"); for (int i = 0; i < befStatResult.Rows.Length; i++) { rowTemp.AddRange(befStatResult.Rows[i]); rowTemp.Insert(1, proDate); statRows.Add(rowTemp.ToArray()); rowTemp.Clear(); } } else { statRows.AddRange(befStatResult.Rows); } for (int i = 0; i < lastStatResult.Rows.Length; i++) { for (int index = 0; index < columns.Count; index++) { if (DYColumnIndex.ContainsKey(index)) { rowTemp.Add(lastStatResult.Rows[i][DYColumnIndex[index]]); continue; } if (AddColumnIndex.Contains(index)) { rowTemp.Add(lastStatResult.Rows[i][index]); } } rowTemp.Insert(1, date); statRows.Add(rowTemp.ToArray()); rowTemp.Clear(); } StringArrayComparer comparer = new StringArrayComparer(true); statRows.Sort(comparer); return(new StatResult("", columns.ToArray(), statRows.ToArray())); }