Как найти ячейки с одинаковыми значениями в 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..