private IEnumerable<string> GetSubSomething(Func<string, string[]> selector) {
if (!Actual) throw new Exception(ToolsStrings.AcObject_NotValidAnymore);
List<string> enabled;
if (Directory.Exists(EnabledDirectory)) {
var list = selector(EnabledDirectory);
foreach (var dir in list) {
yield return dir;
}
enabled = list.Select(x => Path.GetFileName(x)?.ToLowerInvariant()).ToList();
} else {
enabled = new List<string>();
}
if (DisabledDirectory == null || !Directory.Exists(DisabledDirectory)) yield break;
foreach (var dir in selector(DisabledDirectory).Where(x => !enabled.Contains(x.ToLowerInvariant()))) {
yield return dir;
}
}