中排除目錄我知道爲什麼當「excl」列表中有多個字符串時,下列代碼不起作用。這是因爲每個字符串都是在lambda中計算的,現在它包含了前一次迭代「x」中排除的任何字符串。我的問題是,我如何才能在最終結果中正確排除多個項目?如何從IEnumerable <DirectoryInfo>
var di = new DirectoryInfo(@"\\192.168.1.10\e$");
var excl = new List<string>();
excl.Add("Temp");
excl.Add("VSS");
var dirs = from d in di.GetDirectories()
where (d.Attributes & FileAttributes.System) != FileAttributes.System
select d;
dirs = excl
.SelectMany(x => from d in dirs
where !d.FullName.ToLowerInvariant().Contains(x.ToLowerInvariant())
select d)
.Distinct().ToArray();
看起來像克里斯·沙恩通過一分鐘擊敗你。我正在研究Intersect <>文檔,並閱讀了hashcodes,但我知道這個問題會有一種解決方案。此代碼僅用於目錄路徑的部分匹配,而不是完全匹配。 – user1197862 2012-02-08 18:56:10
我打了他一分鐘,但沒關係;-) – BrokenGlass 2012-02-08 18:58:11
你說得對,我是先出現他。這是我在這裏的第一個問題,沒有意識到它顯示了最新到最舊的答案,即使它們的編號很清楚!我會轉換答案。 – user1197862 2012-02-08 19:04:17