Может быть, достаточно запроса linq?
//query notation
var result = from d in Directory.GetDirectories(path)
where !d.Contains("-")
select d;
//'dot' notation
var result2 = Directory.GetDirectories(path)
.Where(dir => !dir.Contains("-"));
РЕДАКТИРОВАТЬ (подробное объяснение)
Решение выше называется "LINQ to Objects" .Это способ запроса коллекций, которые реализуют интерфейс IEnumerable
или IEnumerable<T>
.Метод GetDirectories
возвращает Array
строки, которая может использовать Linq.В интернете много всего о Линке.Чтобы увидеть всю мощь Linq, пролистайте эти примеры на MSDN: 101 Linq Samples .Кстати, Linq полезен для извлечения данных из различных источников, таких как XML, базы данных и т. Д.