我有DataGridView
包含行数和列数,如ID
, Name
,Addr
等。我想找到列中具有相同值的Name
行。例如
ID Name Addr
----------------------
1 Pravin India
2 Shubham Nepal
3 Pravin Bhutan
现在我想根据相同的单元格值获取 ID 1 和 3。
我有DataGridView
包含行数和列数,如ID
, Name
,Addr
等。我想找到列中具有相同值的Name
行。例如
ID Name Addr
----------------------
1 Pravin India
2 Shubham Nepal
3 Pravin Bhutan
现在我想根据相同的单元格值获取 ID 1 和 3。
很多方法可以做到这一点..
您可以按名称对 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 解决方案的人..