一组实体,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#实现
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#实现
调试欢乐多
{
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();
}
}
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)
{
//----
}
}
刚才初始化集合错了
正确代码::
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;
}
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/>");
}
}
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; }
}
}