id grade
--------------
1 | A
2 | A
3 | B
4 | C
5 | C
อยากทราบ เขียนโค้ดยังไง ให้ gridview นับจำนวนข้อมูล คือ
นับว่า มีคนได้ A กี่คน ได้ B กี่คน ได้ Cกี่คน
แล้วไปโชว์ใน textboxอ่ะค่ะ
(ใช้ visual studio C# (window app ))
Tag : .NET, Win (Windows App), C#, VS 2010 (.NET 4.x)
Date :
2012-04-12 14:02:03
By :
biw
View :
2482
Reply :
3
No. 1
Guest
ตัวอย่างจาก Stack Overflow ครับ ผมเคยนำมาใช้ Ok เลยครับ
Code (C#)
var list = myDataGridView.Rows.OfType<DataGridViewRow>()
.Select(x => x.Cells["MYCOLUMN"].Value.ToString());
var q = from x in list
group x by x into g
let count = g.Count()
orderby count descending
select new { Value = g.Key, Count = count };
where "MYCOLUMN" is the name of the column that you want, or, alternatively, you can pass the column index.
EDIT :
this code returns a list of items that contains also the list of rows with the duplications:
Code (C#)
var q = myDataGridView.Rows.OfType<DataGridViewRow>()
.GroupBy(x => x.Cells["MYCOLUMN"].Value.ToString())
.Select(g => new {Value=g.Key, Count=g.Count(), Rows=g.ToList()})
.OrderByDescending(x => x.Count);