Как найти ячейки с одинаковыми значениями в DataGridView?

Я имею DataGridView содержит количество строк и столбцов, например ID, Name, Addrи т. д. Я хочу найти строки, которые имеют одинаковое значение в Name колонка. например

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

Теперь я хотел получить ID 1 и 3 на основе того же значения ячейки.

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..

Другие вопросы по тегам