public static IEnumerable <Name> FromDirectory(DirectoryInfo directory, NameTypes types) { if (types.HasFlag(NameTypes.Boys)) { foreach (var boy in ReadNames(new FileInfo(Path.Combine(directory.FullName, "boys.txt")))) { yield return(boy); } } if (types.HasFlag(NameTypes.Girls)) { foreach (var girl in ReadNames(new FileInfo(Path.Combine(directory.FullName, "girls.txt")))) { yield return(girl); } } }