public List<GameObject> ParseWordFromRow(List<List<GameObject>> blockWord) { string wordString = ""; List<string> validWords = new List<string>(); Dictionary<string, int> wordScores = new Dictionary<string, int>(); var words = WordStore.GetWords(); foreach (List<GameObject> blockList in blockWord) { wordString = ParseWord(blockList); foreach (string validWord in words) { if (wordString.Contains(validWord)) { validWords.Add(validWord); } } if(validWords != null && validWords.Count > 0) { foreach (var validWord in validWords) { var score = scoreHandler.CalculateScore(validWord); wordScores.Add(validWord, score); } var highestScoringWord = wordScores.OrderByDescending(x => x.Value).First().Key; return FilterBlocks(blockList, highestScoringWord); } //Set the string back to empty if the word was not found. wordString = string.Empty; } return new List<GameObject>(); }