c#从directory.getdirectories中排除连字符

c#从directory.getdirectories中排除连字符,c#,file-io,directory,getdirectories,C#,File Io,Directory,Getdirectories,我想使用Directory.GetDirectories方法来获取包含一些排除项的所有目录。特别是,我需要排除其中包含连字符的目录。我已经发现正则表达式不能用作搜索模式。我将使用什么搜索模式?也许一个linq查询就足够了 //query notation var result = from d in Directory.GetDirectories(path) where !d.Contains("-") se

我想使用Directory.GetDirectories方法来获取包含一些排除项的所有目录。特别是,我需要排除其中包含连字符的目录。我已经发现正则表达式不能用作搜索模式。我将使用什么搜索模式?

也许一个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("-"));
编辑(更多说明)

上述解决方案称为。这是一种查询实现
IEnumerable
IEnumerable
接口的集合的方法。
GetDirectories
方法返回符合使用Linq条件的字符串的
Array
。网上有很多关于Linq的东西。要查看Linq的威力,请浏览MSDN上的这些示例:。顺便说一句,Linq对于从各种源(如XML、数据库等)检索数据非常有用。

System.Collections.ObjectModel.Collection resultDirs=new System.Collections.ObjectModel.Collection();
System.Collections.ObjectModel.Collection<string> resultDirs=new System.Collections.ObjectModel.Collection<string> ();
            foreach (string  dir in System.IO.Directory.GetDirectories("path"))
            {
                if (!dir.Contains("-")) resultDirs.Add(dir);
            }
foreach(System.IO.Directory.GetDirectories(“路径”)中的字符串dir) { 如果(!dir.包含(“-”)resultDirs.Add(dir); }
非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);
            }
        }
    }
}
static void Main(字符串[]args)
{
字符串StartingPath=“c:\\”;
List mydirs=new List();//将包含不包含“-”的文件夹
foreach(Directory.GetDirectories(StartingPath)中的字符串d)
{                               
如果(!(d.Contains(“”))
{
添加(d);
}                
foreach(mydirs中的字符串dir)
{
控制台写入线(dir);
}
}
}
}

我是一名计算机科学的新生。我不认识很多这样的代码。你能参考一些资料来帮助我理解它吗?如果使用.NET 4.0,我强烈建议使用它。@Paul我随信附上了可能对你有用的更多信息。