public static IEnumerable <FileInfo> ProjectFiles(DirectoryInfo directory) { FileInfo[] fileInfoArray = directory.GetFiles(); int index; for (index = 0; index < fileInfoArray.Length; ++index) { yield return(fileInfoArray[index]); } fileInfoArray = (FileInfo[])null; DirectoryInfo[] directoryInfoArray = directory.GetDirectories(); for (index = 0; index < directoryInfoArray.Length; ++index) { foreach (FileInfo projectFile in EUtils.ProjectFiles(directoryInfoArray[index])) { yield return(projectFile); } } directoryInfoArray = (DirectoryInfo[])null; }