我有一个解决方案文件夹,其中我收集所有.dll的并存储在数组列表中。我必须搜索所有子目录。请在编写LINQ查询时提供帮助。任何人都可以帮我编写LINQ查询吗?
var r = dir.GetFiles("*.dll").Where<FileInfo>(i => i.Name.StartsWith("SAMPLE")).ToList();
这是正确的。例如我20 DLL的startwith名称“SAMPLE”
我有一个解决方案文件夹,其中我收集所有.dll的并存储在数组列表中。我必须搜索所有子目录。请在编写LINQ查询时提供帮助。任何人都可以帮我编写LINQ查询吗?
var r = dir.GetFiles("*.dll").Where<FileInfo>(i => i.Name.StartsWith("SAMPLE")).ToList();
这是正确的。例如我20 DLL的startwith名称“SAMPLE”
我想你使用EnumerateFiles方法建议:
var r = Directory
.EnumerateFiles(@"c:\work", "*.dll", SearchOption.AllDirectories)
.Where(file => file.StartsWith("SAMPLE"))
.ToList();
甚至更好的使用通配符模式来过滤而不是过滤内存:
var r = Directory
.EnumerateFiles(@"c:\work", "SAMPLE*.dll", SearchOption.AllDirectories)
.ToList();
是的,你的LINQ是正确的。它应该工作正常。 小改正:你不需要那里的tye参数。 (编译器可以推断出它。)
var list = dir.GetFiles("*.dll").Where(i => i.Name.StartsWith("SAMPLE")).ToList();
是的,这是正确的。
我很快创建了类似的代码来测试自己,它的工作原理。
DirectoryInfo dir = new DirectoryInfo(@"C:\Test");
var files = dir.GetFiles("*.jpg").Where<FileInfo>(i => i.Name.StartsWith("Tet")).ToList();
files.ForEach(file => Console.WriteLine(file.Name));
感谢所有人 – 2010-10-05 12:46:24
虽然我得到的文件也得到重复也。如何删除重复? – 2010-10-05 11:45:57
var r =目录 .EnumerateFiles(@“c:\ work”,“SAMPLE * .dll”,SearchOption.AllDirectories).Select(a => a.Filename).Distinct()。ToList(); * r *将包含一个包含所有文件名的列表集合。 –
Michael
2010-10-05 15:43:59