C# 对数组进行分组统计

时间:2025-02-14 07:11:48
 //用来判断所选择的行政区级别
        //0全国1省2市3县
        public int qssx = 0;
        private void button1_Click(object sender, EventArgs e)
        {
            ("数据这个在加载,请稍候......");

            //新建一个QueryTask
            QueryTask queryTask = new QueryTask("http://********.155:6080/arcgis/rest/services/20150507newlocustarea/MapServer/0");

            // Query对象
            Query query = new Query();
       
            if ( == 0 && == 0)
            {
                //("请选择省");
                = "NAME_1 = NAME_1 ";
                qssx = 0;
            }


            if ( != 0 && == 0 && ==0)

            {
                = "NAME_1 ='" + () + "'";
                qssx = 1;
            }


            if ( != 0 && != 0 && == 0)
            {
                = "NAME_12 ='" + () + "'";
                qssx = 2;
            }


            if ( != 0 && != 0 && != 0)
            {
                = "NAME_12_13 ='" + () + "'";
                qssx = 3;
            }
             
            ("*");

            //异步查询,需要绑定queryTask的两个事件,通过ExecuteCompleted得到查询结果
            += QueryTask_ExecuteCompleted;
            += QueryTask_Failed;
            (query);

            //同步查询,不需要绑定事件,直接返回查询结果
            //FeatureSet featureSet = (query); 
            if (() != "柱状图")
            {

                ("请选择柱状图,饼状图尚未实现!");
                return;

            }
        }
        void QueryTask_ExecuteCompleted(object sender, QueryEventArgs e)
        { 

            FeatureSet featureSet = ;
            dt = new ();
            ();
            = true;
            = true;
            //当选择为全国时
            if (qssx == 0)
            {

                var result = (a => ["NAME_1"])
                                .Select(group => new
                                {
                                    Name = ,
                                    Count = (),
                                    Area = (x => (["面积"]))
                                });
                if (featureSet != null && > 0)
                {


                    DataColumn dc1 = new DataColumn("省份");//2
                    (dc1); 
                    DataColumn dc2 = new DataColumn("蝗区总个数");
                    (dc2); 
                    DataColumn dc3 = new DataColumn("蝗区总面积");
                    (dc3); 
                   
                    int i1 = 0;
                   
                    foreach (var groap in result)
                    {
                        DataRow newrow = ();
                        newrow[0] = ();
                        newrow[1] = ();
                        newrow[2] = ();
                        (newrow);

                        i1++;

                    }
                    = ;
                    = ;
                    = ();
                    = (x => (["面积"])).ToString("0.00");
                    = true;
                    = true;
                }
                [0].BackColor = ;
                [0].Enabled = true;
                DataTable dtchart = default(DataTable); 

                dtchart = ("省份", "蝗区总个数", 0, 1, dataGridView2);
                = dtchart;
                [0].YValueMembers = "蝗区总个数";
                [0].XValueMember = "省份";


                [0].Legend = "Legend1";
                [0].LegendText = "蝗区总个数";
                [0]. = 1;   //设置X轴坐标的间隔为1
                [0]. = 1;  //设置X轴坐标偏移为1
                [0]. = false;   //设置是否交错显示,比如数据多的时间分成两行来显示  
                [0]. = "个";
                (); 
             }
            if (qssx == 1)
            {
                //当选择为省时
                var result = (a => ["NAME_12"])
                                .Select(group => new
                                {
                                    Name = ,
                                    Count = (),
                                    Area = (x => (["面积"]))
                                });
                if (featureSet != null && > 0)
                {


                    DataColumn dc1 = new DataColumn("市");//2
                    (dc1);
                    DataColumn dc2 = new DataColumn("蝗区总个数");
                    (dc2);
                    DataColumn dc3 = new DataColumn("蝗区总面积");
                    (dc3);


                    int i1 = 0;

                    foreach (var groap in result)
                    {
                        DataRow newrow = ();
                        newrow[0] = ();
                        newrow[1] = ();
                        newrow[2] = ();

                        (newrow);

                        i1++;
                    }
                    = ;
                    = ;
                    = ();
                    = (x => (["面积"])).ToString("0.00");
                    = true;
                    = true;




                }
                [0].BackColor = ;
                [0].Enabled = true;
                DataTable dtchart = default(DataTable);


                dtchart = ("市", "蝗区总个数", 0, 1, dataGridView2);
                = dtchart;
                [0].YValueMembers = "蝗区总个数";
                [0].XValueMember = "市";


                [0].Legend = "Legend1";
                [0].LegendText = "蝗区总个数";
                [0]. = 1;   //设置X轴坐标的间隔为1
                [0]. = 1;  //设置X轴坐标偏移为1
                [0]. = false;   //设置是否交错显示,比如数据多的时间分成两行来显示  
                [0]. = "个";
                (); 
            }
            if (qssx == 2)
            {
                //当选择为市时
                var result = (a => ["NAME_12_13"])
                                .Select(group => new
                                {
                                    Name = ,
                                    Count = (),
                                    Area = (x => (["面积"]))
                                });
                if (featureSet != null && > 0)
                {


                    DataColumn dc1 = new DataColumn("县");//2
                    (dc1);
                    DataColumn dc2 = new DataColumn("蝗区总个数");
                    (dc2);
                    DataColumn dc3 = new DataColumn("蝗区总面积");
                    (dc3);


                    int i1 = 0;


                    foreach (var groap in result)
                    {
                        DataRow newrow = ();
                        newrow[0] = ();
                        newrow[1] = ();
                        newrow[2] = ();

                        (newrow);
                        i1++;
                    }
                    = ;
                    = ;
                    = ();
                    = (x => (["面积"])).ToString("0.00");
                    = true;
                    = true;

                }
                [0].BackColor = ;
                [0].Enabled = true;
                DataTable dtchart = default(DataTable);


                dtchart = ("县", "蝗区总个数", 0, 1, dataGridView2);
                = dtchart;
                [0].YValueMembers = "蝗区总个数";
                [0].XValueMember = "县";


                [0].Legend = "Legend1";
                [0].LegendText = "蝗区总个数";
                [0]. = 1;   //设置X轴坐标的间隔为1
                [0]. = 1;  //设置X轴坐标偏移为1
                [0]. = false;   //设置是否交错显示,比如数据多的时间分成两行来显示  
                [0]. = "个";
                (); 
            }
            if (qssx == 3)
            { 
                //当选择为县时
                //var result = (a => ["NAME_12_13"])
                //                .Select(group => new
                //                {
                //                    Name = ,
                //                    Count = (),
                //                    Area = (x => (["面积"]))
                //                });
                if (featureSet != null && > 0)
                {

                    DataColumn dc1 = new DataColumn("蝗区名称");//2
                    (dc1);
                    DataColumn dc2 = new DataColumn("蝗区面积");
                    (dc2); 


                    int i1 = 0;

                    foreach (var groap in featureSet)
                    {
                        DataRow newrow = ();
                        newrow[0] = ["蝗区名称"].ToString();
                        newrow[1] = ["面积"].ToString(); 


                        (newrow);


                        i1++;


                    }
                    = ;
                    = ;
                    = ();
                    = (x => (["面积"])).ToString("0.00");
                    = true;
                    = true;


                }
                [0].BackColor = ;
                [0].Enabled = true;
                DataTable dtchart = default(DataTable);


                dtchart = ("蝗区名称", "蝗区面积", 0, 1, dataGridView2);
                = dtchart;
                [0].YValueMembers = "蝗区面积";
                [0].XValueMember = "蝗区名称";
                [0].Legend = "Legend1";
                [0].LegendText = "蝗区面积";
                [0]. = 1;   //设置X轴坐标的间隔为1
                [0]. = 1;  //设置X轴坐标偏移为1
                [0]. = false;   //设置是否交错显示,比如数据多的时间分成两行来显示  
                [0]. = "平方千米";
                (); 
           }
     }
        void QueryTask_Failed(object sender, TaskFailedEventArgs e)
        {
            (());
        }