0

我有DataGridView包含行数和列数,如ID, Name,Addr等。我想找到列中具有相同值的Name行。例如

ID     Name     Addr
----------------------
1    Pravin     India
2    Shubham    Nepal
3    Pravin     Bhutan

现在我想根据相同的单元格值获取 ID 1 和 3。

4

1 回答 1

1

很多方法可以做到这一点..

您可以按名称对 DataGridView 进行排序,然后对其进行迭代以查找重复的名称。

或者您可以将数据读入字典,如下所示:

    Dictionary<string, List<int>> data = new Dictionary<string,List<int>>();

    foreach (DataGridViewRow row in dataGridView1.Rows)
    {
        string name = row.Cells[1].ToString();
        int ID =  Convert.ToInt32(row.Cells[0]);
        if (data.ContainsKey(name)) data[name].Add(ID);
        else data.Add(name, new List<int>(new int[] { ID }));
    }

    foreach (string name in data.Keys)
        if (data[name].Count > 1 ) 
        {
            Console.Write(name);
            foreach (int ID in data[name]) Console.Write(ID.ToString("##### "));
            Console.WriteLine();
        }

或者你可以等待一个有可爱 LINQ 解决方案的人..

于 2014-03-30T09:06:07.957 回答