//private static Win32 ScoreFilter(Win32 p) //{ // var start = new[] { "启动", "start" }; // var doc = new[] { "帮助", "help", "文档", "documentation" }; // var uninstall = new[] { "卸载", "uninstall" }; // var contained = start.Any(s => p.Name.ToLower().Contains(s)); // if (contained) // { // p.Score += 10; // } // contained = doc.Any(d => p.Name.ToLower().Contains(d)); // if (contained) // { // p.Score -= 10; // } // contained = uninstall.Any(u => p.Name.ToLower().Contains(u)); // if (contained) // { // p.Score -= 20; // } // return p; //} public static Win32[] All(Settings settings) { ParallelQuery <Win32> programs = new List <Win32>().AsParallel(); if (settings.EnableRegistrySource) { var appPaths = AppPathsPrograms(settings.ProgramSuffixes); programs = programs.Concat(appPaths); } if (settings.EnableStartMenuSource) { var startMenu = StartMenuPrograms(settings.ProgramSuffixes); programs = programs.Concat(startMenu); } var unregistered = UnregisteredPrograms(settings.ProgramSources, settings.ProgramSuffixes); programs = programs.Concat(unregistered); Watcher.RegisterSources(settings.ProgramSources, settings.ProgramSuffixes); //.Select(ScoreFilter); return(programs.ToArray()); }