string startFolder = @"D:Program Files (x86)Microsoft Visual Studio 12.0"; IEnumerable<FileInfo> fileList = GetFiles(startFolder); Regex searchTerm = new Regex(@"Visual (Basic|C#|Studio)"); var queryMatchingFiles = from file in fileList where file.Extension == ".htm" let fileText = File.ReadAllText(file.FullName) let matches = searchTerm.Matches(fileText) where matches.Count > 0 select new { name = file.FullName, mat = from Match match in matches select match.Value }; foreach (var item in queryMatchingFiles) { Console.WriteLine(item.name); foreach (var item1 in item.mat) { Console.WriteLine(item1); } } Console.WriteLine(); Console.WriteLine("Press Any Key to Exit..."); Console.ReadKey();