public void CheckDuplicateWords(int lowerLimit, int upperLimit) { // Create unique sequences. List <string> uniqueSequences = new List <string>(); foreach (WordData sequence in Sequences) { if (!uniqueSequences.Contains(sequence.Letters)) { uniqueSequences.Add(sequence.Letters); } } // Check the number of occurances. foreach (String letters in uniqueSequences) { List <WordData> duplicates = Sequences.FindAll(x => x.Letters.Equals(letters)); if (duplicates.Count > 1) { if (duplicates.Count < Configuration.MinimumNumberOfTheSameWord || duplicates.Count > Configuration.MaximumNumberOfTheSameWord) { ErrorMessages.Add(String.Format(CrozzleErrors.DuplicateWordCountError, letters, duplicates.Count, Configuration.MinimumNumberOfTheSameWord, Configuration.MaximumNumberOfTheSameWord)); } } } }
public void CheckDuplicateWords(int lowerLimit, int upperLimit) { // Create unique sequences. List <string> uniqueSequences = new List <string>(); foreach (WordData sequence in Sequences) { if (!uniqueSequences.Contains(sequence.Letters)) { uniqueSequences.Add(sequence.Letters); } } // Check the number of occurances. foreach (String letters in uniqueSequences) { List <WordData> duplicates = Sequences.FindAll(x => x.Letters.Equals(letters)); duplicates.RemoveAt(0); // A duplicate does not include the word itself. if (duplicates.Any()) { if (duplicates.Count < lowerLimit || duplicates.Count > upperLimit) { ErrorMessages.Add(String.Format(CrozzleErrors.DuplicateWordCountError, letters, duplicates.Count, lowerLimit, upperLimit)); } } } }