private int edge; // number in array where the type word quiz starts
        public QuizProvider()
        {
            count           = 1;
            partOfGame      = PartOfGame.MatchWords;
            WordsList       = new ObservableCollection <string>();
            TranslationList = new ObservableCollection <string>();
            ObservableCollection <WordCard> list = new ObservableCollection <WordCard>(DictionaryLoader.ActiveDictionary.Dictionary);

            if (list != null)
            {
                var querySelected = from wordCard in list where wordCard.TimesAnsweredCorrectly < 12 select wordCard;
                selectedWordsList = new ObservableCollection <WordCard>(((IEnumerable <WordCard>)querySelected).ToList());

                var querySeparated = from wordCard in list where wordCard.TimesAnsweredCorrectly >= 12 select wordCard;
                separatedWordList = new ObservableCollection <WordCard>(((IEnumerable <WordCard>)querySeparated).ToList());
            }
            if (selectedWordsList.Count <= 5)
            {
                edge = -1;
            }
            else if (selectedWordsList.Count > 5 && selectedWordsList.Count <= 12)
            {
                edge = selectedWordsList.Count / 2;
            }
            else
            {
                edge = selectedWordsList.Count - 6;
            }
            FillWordLists();
        }
 public void FillWordLists()
 {
     WordsList.Clear();
     TranslationList.Clear();
     for (; count <= selectedWordsList.Count; count++)
     {
         WordsList.Add(selectedWordsList[count - 1].Word);
         TranslationList.Add(selectedWordsList[count - 1].Translation);
         if (count == edge)
         {
             partOfGame = PartOfGame.TypeWords;
             count++;
             break;
         }
         if (count % 5 == 0 && count != 0 && partOfGame == PartOfGame.MatchWords)
         {
             count++;
             break;
         }
     }
 }