我需要在dataGridView中计数并呈现不同值/唯一值。 我想这样呈现,而且这个代码在列表中工作得很好。使用.NET中的linq计算dataGridView中列的不同值
List<string> aryIDs = new List<string>();
aryIDs.Add("1234");
aryIDs.Add("4321");
aryIDs.Add("3214");
aryIDs.Add("1234");
aryIDs.Add("4321");
aryIDs.Add("1234");
var result= aryIDs.GroupBy(id => id).OrderByDescending(id => id.Count()).Select(g => new { Id = g.Key, Count = g.Count() });
但是,当我尝试的dataGridView使用相同的方法在专栏中,我得到一个错误,指出GROUPBY不能在我的dataGridView使用。
DataGridView dataGridView1= new DataGridView();
dataGridView1.Columns.Add("nr", "nr");
string[] row1 = new string[] { "1234" };
string[] row2 = new string[] { "4321" };
string[] row3 = new string[] { "3214" };
string[] row4 = new string[] { "1234" };
string[] row5 = new string[] { "4321" };
string[] row6 = new string[] { "1234" };
object[] rows = new object[] { row1, row2, row3, row4, row5, row6 };
foreach (string[] rowArray in rows)
{
dataGridView1.Rows.Add(rowArray);
}
var result = dataGridView1.GroupBy(id => id).OrderByDescending(id => id.Count()).Select(g => new { Id = g.Key, Count = g.Count() });
所以我的问题是,我该如何适应这个linq语法来处理dataGridView中的列?如果可能的话,我根本不想使用列表。
它会计算所有不同的值,但不是每个的计数这是OP在列表示例中做的不同值 –
这对我有帮助,但它应该来自'DataGridViewRow'和'row.Cells [0] .Value' – StevenWhite