using Yw; namespace IStation.Test { public class DayValueHelper { public static List GetDayValues() { var fileList = new List(); var folderPath1 = $"{AppDomain.CurrentDomain.BaseDirectory}Eapnet验证数据\\陈行一输"; var folderPath2 = $"{AppDomain.CurrentDomain.BaseDirectory}Eapnet验证数据\\陈行二输"; var fileList1 = Directory.GetFiles(folderPath1); var fileList2 = Directory.GetFiles(folderPath2); fileList.AddRange(fileList1); fileList.AddRange(fileList2); var timeVlaueList=new List(); foreach (var file in fileList) { var fileName = Path.GetFileNameWithoutExtension(file); if (!DateTime.TryParse(fileName, out DateTime day)) continue; var json = File.ReadAllText(file); var timeValues = JsonHelper.Json2Object>(json); if (timeValues == null || !timeValues.Any()) continue; timeVlaueList.AddRange(timeValues); } if (timeVlaueList == null || !timeVlaueList.Any()) return default; var dayValues = new List(); var timeVlaueDayGroups = timeVlaueList.GroupBy(x =>new { x.Time.Year,x.Time.Month,x.Time.Day}); foreach (var day in timeVlaueDayGroups) { var timeValueList = new List(); var timeVlaueGroup=day.GroupBy(x=>x.Time.ToOADate()); foreach (var tvItem in timeVlaueGroup) { var t = DateTime.FromOADate(tvItem.Key); var value = new Dictionary(); foreach (var tv in tvItem) { foreach (var v in tv.Value) { value.Add(v.Key, v.Value); } } var timeValue = new IStation.Hydraulic.TimeValue(); timeValue.Time = t; timeValue.Value = value; timeValueList.Add(timeValue); } var dv = new IStation.Hydraulic.DayValue(); dv.Year = day.Key.Year; dv.Month = day.Key.Month; dv.Day = day.Key.Day; dv.TimeValueList = timeValueList; dayValues.Add(dv); } return dayValues; } } }