Я хотел бы использовать метод Directory.GetDirectories, чтобы получить все каталоги с некоторыми исключениями. В частности, мне нужно исключить каталоги, в которых есть дефис. Я уже выяснил, что регулярные выражения не работают как шаблоны поиска. Какой шаблон поиска я бы использовал?
С# исключить дефис из directory.getdirectories
29.12.2010
Ответы:
1
Может быть, запроса 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. Чтобы увидеть возможности Linq, просмотрите эти примеры в MSDN: 101 образец Linq. Кстати, Linq полезен для извлечения данных из различных источников, таких как XML, базы данных и т. д.
29.12.2010
2
Не LINQ:
static void Main(string[] args)
{
string StartingPath = "c:\\";
List<string> mydirs = new List<string>(); // will contains folders not containing "-"
foreach (string d in Directory.GetDirectories(StartingPath))
{
if (!(d.Contains("_")))
{
mydirs.Add(d);
}
foreach (string dir in mydirs)
{
Console.WriteLine(dir);
}
}
}
}
29.12.2010
Новые материалы
Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..
Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально
Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..
Частный метод Python: улучшение инкапсуляции и безопасности
Введение
Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..
Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования
Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..
Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv)
Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..
Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..
Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..
Directory.EnumerateDirectories()
. . 29.12.2010