Я бы порекомендовал вам использовать метод EnumerateFiles :
var r = Directory
.EnumerateFiles(@"c:\work", "*.dll", SearchOption.AllDirectories)
.Where(file => file.StartsWith("SAMPLE"))
.ToList();
или даже лучше использовать шаблон подстановочного знака для фильтрации вместо фильтрации в памяти:
var r = Directory
.EnumerateFiles(@"c:\work", "SAMPLE*.dll", SearchOption.AllDirectories)
.ToList();