对datetable的一些操作

本文介绍了一种方法,通过使用C#语言和DataTable类来计算数据集的平均降雨量,并按站点降雨量进行排序。包括计算平均降雨量、站点详细信息展示、站点降雨量排序前三名展示、街道降雨量计算与排序,适用于气象数据分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DataTable dt = new DataTable();

dt=dateset.Tables[0];

    //计算平均值

                    rainAvg = String.Format("{0:0.0}", dt.Compute("avg(rainValue)", ""));
                    //查询站点值
                    
                    for (int j = 0; j < dt.Rows.Count; j++)
                    {
                        rainStation += dt.Rows[j][1] + "\t" + String.Format("{0:0.0}", dt.Rows[j][2])+ "\r\n";
                    }
                    //查询站点雨量并排序取前三个,变成字符串,只用在word中
                    DataView DV = new DataView(dt);
                    DV.Sort = "rainValue desc";
                    rainStationMaxs = DV[0][1].ToString() + "(" + String.Format("{0:0.0}",DV[0][2]) + "mm)、" + DV[1][1].ToString() + "(" + String.Format("{0:0.0}",DV[1][2]) + "mm)、" + DV[2][1].ToString() + "(" + String.Format("{0:0.0}",DV[2][2]) + "mm)。";
                    //查询街道雨量
                    var result = from row in dt.AsEnumerable()
                                 group row by new
                                 {
                                     streetName = row.Field<string>("StreetName"),
                                 } into g
                                 orderby g.Key.streetName ascending
                                 select new
                                 {
                                     StreetName = g.Key.streetName,
                                     count_rain = g.Average(r => Convert.ToDouble(r.Field<double>("rainValue")))
                                 }; 
                    DataTable boundTable = new DataTable();
                    boundTable.Columns.Add("StreetName");
                    boundTable.Columns.Add("rainValue", typeof(double));
                    result.ToList().ForEach(q => boundTable.Rows.Add(q.StreetName, q.count_rain));
                    
                    for (int j = 0; j < boundTable.Rows.Count; j++)
                    {
                        rainStreet += boundTable.Rows[j][0] + "\t" + String.Format("{0:0.0}",boundTable.Rows[j][1]) + "\r\n";
                    }
                    //result.ToList().ForEach(q => rainStreet += q.StreetName + "\t" + q.count_rain + "\r\n");
                    //查询街道雨量,并对雨量进行排序,只用在word中
                    DV = new DataView(boundTable);
                    DV.Sort = "rainValue desc";
                    for (int j = 0; j < DV.Count; j++)
                    {
                        rainStreetDesc += DV[j][0] + "(" + String.Format("{0:0.0}",DV[j][1]) + "mm),";
                    }
                    rainStreetDesc = rainStreetDesc.Remove(rainStreetDesc.Length - 1);
                    rainStreetDesc = rainStreetDesc.Insert(rainStreetDesc.Length, ";雨量较大站点出现在");
                    creatDocument();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值