나는 잠재적 인 일치 항목을 찾기 위해 정규식 배열을 사용하여 필터링 할 IEnumerable <DirectoryInfo>을 가지고 있습니다. 나는 linq을 사용하여 나의 디렉토리와 regex 문자열에 합류하려고 노력해 왔지만 그것을 올바르게 얻는 것처럼 보이지 않는다. 여기에 내가 뭘하려고하는지 ...정규식 목록을 사용하여 일치하는 디렉터리 찾기
string[] regexStrings = ... // some regex match code here.
// get all of the directories below some root that match my initial criteria.
var directories = from d in root.GetDirectories("*", SearchOption.AllDirectories)
where (d.Attributes & (FileAttributes.System | FileAttributes.Hidden)) == 0
&& (d.GetDirectories().Where(dd => (dd.Attributes & (FileAttributes.System | FileAttributes.Hidden)) == 0).Count() > 0// has directories
|| d.GetFiles().Where(ff => (ff.Attributes & (FileAttributes.Hidden | FileAttributes.System)) == 0).Count() > 0) // has files)
select d;
// filter the list of all directories based on the strings in the regex array
var filteredDirs = from d in directories
join s in regexStrings on Regex.IsMatch(d.FullName, s) // compiler doesn't like this line
select d;
... 내가 어떻게 작동하도록 할 수있는 제안?
아, Any() 호출이 좋습니다. 나는 그 사람들에 대해 잊고있다! –
Doh! - 나는 그 모든 것을 잊어 버린다. –