Well, that seems pretty straightforward:
DateTime currentDate = DateTime.Today;
DateTime endDate = currentDate.AddDays(3);
DateTime dueDate = db.Files.Where(y => (y.DueDate >= currentDate) && (y.DueDate <= endDate) && (y.UserID == user.ID)).ToList().Take(7);
However, if, like I suspect, the DueDate property of the File object is not a DateTime but a string (as suggested by the code you wrote), I'm afraid you won't be able to do it in a single Linq expression. You will have to resort to a plain old foreach loop. Something like:
DateTime currentDate = DateTime.Today;
DateTime endDate = currentDate.AddDays(3);
List<File> files = new List<File>();
foreach (File file in db.Files) {
DateTime dueDate = DateTime.Parse(file.DueDate);
if ((dueDate >= currentDate) && (dueDate <= endDate) && (file.UserId == user.ID)) {
files.Add(file);
}
}
files = files.Take(7);
Conclusion: when you have DateTime values, use the DateTime type, not the string one.