Прямо сейчас вы заказываете потенциально большой список файлов, когда вас интересуют, может быть, только несколько, что кажется расточительным; представьте тысячи буквенно-цифровых имен и только несколько числовых ... ой. Почему бы не отфильтровать сначала файлы, которые не являются числами, а , а затем заказать остальные?
Важным дополнительным преимуществом этого подхода является то, что, как только вы знаете , у вас есть только числовые имена файлов, тривиально правильно упорядочить их, не возвращаясь к собственным функциям:
static int FindNextFileNumber(string folder)
{
var i = 0;
return Directory.EnumerateFiles(folder)
.Where(f => int.TryParse(f, out i))
.Select(f => i)
.OrderByDescending(n => n)
.FirstOrDefault();
}