Ваш вопрос немного скучен по деталям, но если мы работаем с набором допущений:
- У вас есть набор данных с N таблицами
- Все таблицы имеют столбец StudentID типа int
- Вы хотите обнаружить определенные повторяющиеся целые числа
Следующий код оставит вас со списком, который цитирует все повторяющиеся строки:
HashBag<int> idx = new HashBag<int>();
List<DataRow> dupRows = new List<DataRow>();
foreach(DataTable dt in dataset.Tables)
{
foreach(DataRow dr in dt.Rows)
{
int sid = (int)dr["StudentID"];
if(idx.Contains(sid))
dupRows.Add(dr);
else
idx.Add(sid);
}
}
DataRows имеют ссылки на таблицу, в которой они живут, поэтому, если вам нужна ссылка на таблицу данных, в которой обитает конкретная строка, позвоните, например, dupRows[0].Table
Если вы хотите первую строку, а также все дубликаты вместо этого рассмотрим словарь:
Dictionary<int, DataRow> idx = new Dictionary<int, DataRow>();
List<DataRow> dupRows = new List<DataRow>();
foreach(DataTable dt in dataset.Tables)
{
foreach(DataRow dr in dt.Rows)
{
int sid = (int)dr["StudentID"];
if(idx.Contains(sid))
dupRows.Add(dr);
else
idx[sid] = dr;
}
}
Теперь словарь содержит первую найденную строку, а список содержит все ее дубликаты