我有一個解決方案文件夾,其中我收集所有.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