一组实体,3列值名称    详细     数量举例:
A  B  1
A  B  1
A  B  1
Q  W  1
Q  W  1
Q  W  1
Q  W  1  比如这个是集合
得到的结果就是
A  B  3
Q  W  4
相当于sql中  group by 名称  Count(数量)  求助用C#实现

解决方案 »

  1.   

    protected void Page_Load(object sender, EventArgs e)
        {
            using (SqlConnection conn = new SqlConnection(连接串))
            {
                conn.Open();
                string str = "select 名称,count(1) as 数量 from tb group by 名称";
                DataSet ds = new DataSet();
                SqlDataAdapter da = new SqlDataAdapter(str,conn);
                da.Fill(ds,"ss");
                GridView1.DataSource = ds.Tables["ss"];
                GridView1.DataBind();
            }
        }
      

  2.   

    str = "select A,B ,count(1)  from tb group by A,B;
      

  3.   

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;/// <summary>
    ///实体类
    /// </summary>
    public class User
    {
        public User()
        {
            //
            //TODO: 在此处添加构造函数逻辑
            //
        }
        private string name;    public string Name
        {
            get { return name; }
            set { name = value; }
        }
        private string pwd;    public string Pwd
        {
            get { return pwd; }
            set { pwd = value; }
        }
        private int sum;    public int Sum
        {
            get { return sum; }
            set { sum = value; }
        }}
    //集合
    public List<User> GetUser()
        {
            User u1 = new User();
            u1.Name = "A1";
            u1.Pwd = "B1";
            u1.Sum = 1;        User u4 = new User();
            u1.Name = "A1";
            u1.Pwd = "B4";
            u1.Sum = 1;        User u5= new User();
            u1.Name = "A1";
            u1.Pwd = "B5";
            u1.Sum = 1;        User u2 = new User();
            u2.Name = "A2";
            u2.Pwd = "B2";
            u2.Sum = 1;
            User u3 = new User();
            u3.Name = "A2";
            u3.Pwd = "B3";
            u3.Sum = 1;
            List<User> uList = new List<User>();
            uList.Add(u1);
            uList.Add(u2);
            uList.Add(u3);
            uList.Add(u4);
            uList.Add(u5);
            return uList;
        }
    //分组和countList<User> ulist = GetUser();
            var query = ulist.GroupBy(p => p.Name);//按名称分组
            foreach (var item in query)
            {
                int c = (from o in ulist where o.Name == item.Key select o).ToList().Count;//根据名称查询每个组的数量
                foreach (User val in item)
                {
                    //----
                }
            }
      

  4.   


    刚才初始化集合错了
    正确代码::
    public List<User> GetUser()
        {
            User u1 = new User();
            u1.Name = "A1";
            u1.Pwd = "B1";
            u1.Sum = 1;        User u4 = new User();
            u4.Name = "A1";
            u4.Pwd = "B4";
            u4.Sum = 1;        User u5= new User();
            u5.Name = "A1";
            u5.Pwd = "B5";
            u5.Sum = 1;        User u2 = new User();
            u2.Name = "A2";
            u2.Pwd = "B2";
            u2.Sum = 1;
            User u3 = new User();
            u3.Name = "A2";
            u3.Pwd = "B3";
            u3.Sum = 1;
            List<User> uList = new List<User>();
            uList.Add(u1);
            uList.Add(u2);
            uList.Add(u3);
            uList.Add(u4);
            uList.Add(u5);
            return uList;
        }
      

  5.   

    List<User> ulist = GetUser();
            var query = ulist.GroupBy(p => p.Name);//按名称分组
            foreach (var item in query)
            {
                int c = (from o in ulist where o.Name == item.Key select o).ToList().Count;//根据名称查询每个组的数量
                Response.Write("第"+item.Key+"组:<br/>");
                foreach (User u in item)
                {
                    Response.Write("Name:"+u.Name+"<br/>");
                    Response.Write("Pwd:" + u.Pwd + "<br/>");
                    Response.Write("Pwd:" +c.ToString() + "<br/>");
                }
            }
      

  6.   

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Collections;namespace ConsoleApplication2
    {
        class Program
        {
            static void Main(string[] args)
            {
                IList<Test> list = GetList();            //IEnumerable<IGrouping<string, int>> query = list.GroupBy(test => test.name+test.age, test => test.age);
                //  foreach (IGrouping<string , int> petGroup in query)
                //    {
                //        // Print the key value of the IGrouping.
                //          Console.WriteLine(petGroup.Key);
                //        // Iterate over each value in the 
                //        // IGrouping and print the value.
                //           foreach (int num in petGroup)
                //            Console.WriteLine("  {0}",num );
                //    }            //  Console.ReadLine();              bool isgo = true;              IList<Test> list2 = new List<Test>();              foreach (Test info in list)
                  {                  if (ishave(info,list2))
                      {
                          continue;
                      }                  int count = 0;
                      foreach (Test info2 in list)
                      {
                          if (info.name.Equals(info2.name) && info.age == info2.age)
                          {                        
                                  count = count + info2.num;                
                          }
                          else
                          {
                            
                              continue;
                          }
                      }
                      Test t1 = new Test();
                      t1.name = info.name;
                      t1.age = info.age;
                      t1.num = count;
                      list2.Add(t1);              }              foreach (Test tinfo in list2)
                  {
                      Console.Write(tinfo.name+"("+tinfo.age+"):"+tinfo.num);
              
                    
                  }
                  Console.ReadLine();        }        public static bool ishave(Test info,IList<Test> list)
            { 
                bool isHave=false;
                foreach (Test t in list)
                {
                    if (t.name.Equals(info.name) && t.age == info.age)
                    {
                        isHave = true;
                    }
                }               return isHave;
            }        public static IList<Test> GetList()
            {
                IList<Test> list = new List<Test>();            Test t1 = new Test();
                t1.name = "兔子";
                t1.age = 3;
                t1.num = 1;            Test t2 = new Test();
                t2.name = "兔子";
                t2.age = 3;
                t2.num = 1;            Test t3 = new Test();
                t3.name = "兔子";
                t3.age = 3;
                t3.num = 1;            Test t4 = new Test();
                t4.name = "猪";
                t4.age = 4;
                t4.num = 1;            Test t5 = new Test();
                t5.name = "猪";
                t5.age = 4;
                t5.num = 1;            Test t6 = new Test();
                t6.name = "猪";
                t6.age = 4;
                t6.num = 2;            Test t7 = new Test();
                t7.name = "猪";
                t7.age = 4;
                t7.num = 3;            list.Add(t1);
                list.Add(t2);
                list.Add(t3);
                list.Add(t4);
                list.Add(t5);
                list.Add(t6);
                list.Add(t7);            return list;
            }       
        }        public class Test
            {                       public string name { get; set; }            public int  age { get; set; }            public int num { get; set; }
            }
          
    }