private static string ScanCommonPrefix(IEnumerable<string> args) { var source = args as string[] ?? args.ToArray(); return source.First() .Scan("", (x, y) => x + y) .TakeWhile(x => source.All(y => y.StartsWith(x))) .LastOrDefault() ?? ""; }