c#从directory.getdirectories中排除连字符
我想使用Directory.GetDirectories方法来获取包含一些排除项的所有目录。特别是,我需要排除其中包含连字符的目录。我已经发现正则表达式不能用作搜索模式。我将使用什么搜索模式?也许一个linq查询就足够了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
//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我随信附上了可能对你有用的更多信息。