private List <Card> FindMatch(string TextToSearch) { List <Card> matched_cards = new List <Card>(); string[] card_paths = null; if (cmbCardGroups.SelectedIndex == 0) { card_paths = Globals.GetPathOfEachCard(); } else { card_paths = Globals.GetPathOfEachCard(CardGroupPaths[cmbCardGroups.SelectedIndex - 1]); } var cards = Globals.GetListOfCards(card_paths); foreach (Card card in cards) { List <string> text_file_list = new List <string>(); string[] question_text_files = Globals.GetListOfTextFiles(card.QuestionAbsPath); string[] answer_text_files = Globals.GetListOfTextFiles(card.AnswerAbsPath); string[] reminder_text_files = Globals.GetListOfTextFiles(card.ReminderAbsPath); text_file_list.AddRange(question_text_files); text_file_list.AddRange(answer_text_files); text_file_list.AddRange(reminder_text_files); foreach (string file in text_file_list) { string file_text = File.ReadAllText(file); if (file_text.IndexOf(TextToSearch) >= 0) { matched_cards.Add(card); break; } } } return(matched_cards); }