Nano Hash - криптовалюты, майнинг, программирование

С# исключить дефис из directory.getdirectories

Я хотел бы использовать метод Directory.GetDirectories, чтобы получить все каталоги с некоторыми исключениями. В частности, мне нужно исключить каталоги, в которых есть дефис. Я уже выяснил, что регулярные выражения не работают как шаблоны поиска. Какой шаблон поиска я бы использовал?


Ответы:


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
  • Я новый студент информатики. Я не узнаю большую часть этого кода. Можете ли вы сослаться на какой-нибудь материал, чтобы помочь мне понять это? 29.12.2010
  • При использовании .NET 4.0 я настоятельно рекомендую вместо этого использовать Directory.EnumerateDirectories(). . 29.12.2010
  • @Paul Пол, я приложил дополнительную информацию, которая может быть вам полезна. 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). Они жизненно важны для различных приложений, таких как интеллектуальные..