Вы можете просто написать
DataRow last = dsRequests.Tables["Requests"].AsEnumerable().LastOrDefault();
if(last != null)
.....
заставляет DataTable быть перечисляемым, тогда вы можете использовать LastOrDefault () . Обратите внимание, что я использую LastOrDefault , потому что, если таблица пуста, Last () даст вам исключение.
Другой подход заключается в использовании старомодного индекса для коллекции Rows
DataRow last = null;
int idx = dsRequests.Tables["Requests"].Rows.Count;
if(idx > 0) last = dsRequests.Tables["Requests"].Rows[idx -1];
if(last != null)
....
В этом примере вы должны проверить количество строк после получения количества.
Я также должен добавить, что последний пример, использующий индекс для доступа к последней строке, более производительный. Однако мои тесты показывают, что в цикле 100000 разница составляет всего 40 миллисекунд. Не о чем беспокоиться.