Cuente valores distintos de una columna en dataGridView usando linq en .NET

Necesito contar y presentar valores distintos / únicos en un dataGridView. Quiero presentarlo de esta manera, y este código funciona bien con las listas.

        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() });

Pero cuando trato de usar el mismo enfoque en una columna en dataGridView, aparece un error que dice que groupBy no se puede usar en mi 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() });

Así que mi pregunta es, ¿cómo adapto esta sintaxis de linq para trabajar con una columna en dataGridView? Si es posible, no quiero usar listas en absoluto.

Respuestas a la pregunta(2)

Su respuesta a la pregunta