相关文章推荐
愉快的墨镜  ·  java csv转换为excel ...·  2 月前    · 
俊秀的灌汤包  ·  python - ImportError: ...·  11 月前    · 
List persons1 = new List<Person> (); private void Form1_Load( object sender, EventArgs e) initForm(); private void initForm() { // 窗体初始化 persons1.Add( new Person( " 张三 " , " " , 20 , 1500 )); persons1.Add( new Person( " 王成 " , " " , 32 , 3200 )); persons1.Add( new Person( " 李丽 " , " " , 19 , 1700 )); persons1.Add( new Person( " 何英 " , " " , 35 , 3600 )); persons1.Add( new Person( " 何英 " , " " , 18 , 1600 )); dataGridView1.DataSource = persons1; private void button1_Click( object sender, EventArgs e) // ******* 对集合按Name属于进行分组GroupBy查询 ******** // 结果中包括的字段: // 1、分组的关键字:Name = g.Key // 2、每个分组的数量:count = g.Count() // 3、每个分组的年龄总和:ageC = g.Sum(item => item.Age) // 4、每个分组的收入总和:moneyC = g.Sum(item => item.Money) // 写法1:lamda 表达式写法(推荐) var ls = persons1.GroupBy(a => a.Name).Select(g => ( new { name = g.Key, count = g.Count(), ageC = g.Sum(item => item.Age), moneyC = g.Sum(item => item.Money) })); // 写法2:类SQL语言写法 最终编译器会把它转化为lamda表达式 var ls2 = from ps in persons1 group ps by ps.Name into g select new { name = g.Key, count = g.Count(), ageC = g.Sum(item => item.Age), moneyC = g.Sum(item => item.Money) }; dataGridView1.DataSource = ls.ToList(); // dataGridView1.DataSource = ls2.ToList(); /// <summary> /// 手动设计一个Person类。用于放到List泛型中 /// </summary> public class Person public string Name { get ; set ; } public int Age { get ; private set ; } public string Sex { get ; set ; } public int Money { get ; set ; } public Person( string name, string sex, int age, int money) Name = name; Age = age; Sex = sex; Money = money;