Linq group by, XElement

            if (System.IO.File.Exists(this.textBox1.Text.Trim()) == false)

            {

                MessageBox.Show("文件不存在!"); return;

            }

            //法2

            XElement globalXmlElement = XElement.Load(this.textBox1.Text.Trim());

            var q = from c in globalXmlElement.Elements("errorInfo")

                    group c by c.FirstAttribute.Value into g

                    where g.Count()>1

                    select new 

                    {

                        Code = g.Key,

                        Cnt =g.Count(),

                    };

           

            /*法1

            List < ErrInfo> infosList = (from c in globalXmlElement.Elements("errorInfo")

                        select new ErrInfo { 

                         Code=c.FirstAttribute.Value,

                         Msg=c.LastAttribute.Value,

                        }).ToList < ErrInfo>();

            var q = from i in infosList

                      group i by i.Code into g

                      where g.Count()>1

                      select new {

                          Code=g.Key,

                          Cnt =g.Count(),

                      };

            */

            this.txtResult.Text = string.Empty;

            int cnt = 0;

            foreach (var c in q)

            {

                cnt++;

                this.txtResult.Text +="Code: "+ c.Code +"\t,Cnt= "+c.Cnt+ Environment.NewLine;

            }

            MessageBox.Show("done! Total:"+cnt.ToString());

            

你可能感兴趣的:(group by)