/// <summary> /// Метод принимающий диапазон дат и удаляет все элементы списка не входящий в данный диапазон /// </summary> /// <param name="item">Верхняя граница диапазона дат</param> /// <param name="item2">Нижняя граница диапазона дат</param> public void Export(string item, string item2) { // создание переменных в формате даты DateTime one = Convert.ToDateTime(item); DateTime two = Convert.ToDateTime(item2); // Определение индекса верхней и нижней границы диапазона int oneitem = this.dateBase.FindIndex(x => x.Date.ToString().Contains(item)); int twoitem = this.dateBase.FindIndex(x => x.Date.ToString().Contains(item2)); // сколько элементов переносится int index = twoitem + 1; // Инициализация массива для заполнения его данными, которые деобходимо экспортировать DataFields[] array = new DataFields[index]; // Элемент массива int count = 0; // Заполнение массива данными структуры теми которые входят в диапазон значений for (int i = 0; i < index; i++) { if (this.dateBase[i].Date >= one & this.dateBase[i].Date <= two) { array[count].Date = this.dateBase[i].Date; array[count].Period = this.dateBase[i].Period; array[count].Cold = this.dateBase[i].Cold; array[count].Hotter = this.dateBase[i].Hotter; array[count].TotalCold = this.dateBase[i].TotalCold; array[count].TotalHotter = this.dateBase[i].TotalHotter; count++; } } // Очистка списка this.dateBase.Clear(); // Заполнение списка из массива DataFields[] for (int i = 0; i < count; i++) { this.dateBase.Add( new DataFields() { Date = array[i].Date, Period = array[i].Period, Cold = array[i].Cold, Hotter = array[i].Hotter, TotalCold = array[i].TotalCold, TotalHotter = array[i].TotalHotter } ); } }
/// <summary> /// Метод перерасчета данных о потреблении /// </summary> public void RecalculateItem() { // Определяет количество элементов в базе данных int count = dateBase.Count; int totalCold, totalHotter; // Инициализация массива структуры DataFields[] array = new DataFields[count]; // Копирование данных списка в массив структуры this.dateBase.CopyTo(array); // Очистка базы данных this.dateBase.Clear(); // Заполнение списка из массива DataFields[] for (int i = 0; i < count; i++) { if (i == 0) { totalCold = array[i].Cold; totalHotter = array[i].Hotter; } else { totalCold = array[i].Cold - array[i - 1].Cold; totalHotter = array[i].Hotter - array[i - 1].Hotter; } this.dateBase.Add( new DataFields() { Date = array[i].Date, Period = array[i].Period, Cold = array[i].Cold, Hotter = array[i].Hotter, TotalCold = totalCold, TotalHotter = totalHotter } ); } }