Если вы хотите взять все с 4-го ряда и далее, вам вообще не нужен вызов Take, просто:
IEnumerable<DataRow> lstDr = dt.AsEnumerable().Skip(4);
Когда вы говорите о «результате», откуда это происходит? Что вы получите, если позвоните:
Console.WriteLine(lstDr.Count());
Сколько строк в вашей таблице данных для начала?