/// <summary>
        /// Add new numbers to list and increment repeat count by 2.
        /// </summary>
        /// <param name="numbers"></param>
        private static void AddNewNum(List <int> numbers)
        {
            NumbersAndRepeats numbersAndRepeats = new NumbersAndRepeats();

            numbersAndRepeats.Numbers = new List <int>();

            foreach (var item in numbers)
            {
                numbersAndRepeats.Numbers.Add(item);
            }
            numbersAndRepeats.Repeat = 2;

            NumberList.Add(numbersAndRepeats);
        }
        /// <summary>
        /// Detect if numbers is in list, if is then incremet repeats++.
        /// </summary>
        /// <param name="numbers"></param>
        /// <param name="numbersAndRepeats"></param>
        /// <param name="numFromList"></param>
        /// <param name="num2"></param>
        /// <param name="similarNumCounter"></param>
        /// <param name="notDuplicateCounter"></param>
        private static void AddRepeatTimess(List <int> numbers, NumbersAndRepeats numbersAndRepeats, int numFromList, int num2Count, ref int similarNumCounter)
        {
            foreach (var num in numbers)
            {
                if (num == numFromList)
                {
                    similarNumCounter++;
                }

                if (similarNumCounter == num2Count)
                {
                    IsMatch = true;
                    numbersAndRepeats.Repeat++;
                }
            }
        }
        /// <summary>
        /// Add new numbers if this number combination does not exist, or increment repeats++ if numbers combination already is in NumberList.
        /// </summary>
        /// <param name="numbers"></param>
        public static void AddNumbers(List <int> numbers)
        {
            // if no repeat in NumberList is found then in the last loop cicle number is added to NumberList
            int notDuplicateCounter = 0;

            NumbersAndRepeats numbersAndRepeats = new NumbersAndRepeats();

            IsMatch = false;

            if (NumberList.Count == 0)
            {
                AddNewNum(numbers);
            }
            else
            {
                foreach (var item in NumberList.ToList())
                {
                    int similarNumCounter = 0;
                    notDuplicateCounter++;

                    var numbesExist = item.Numbers.All(numbers.Contains) && numbers.Count() == item.Numbers.Count();

                    if (numbesExist)
                    {
                        for (int num2 = 0; num2 < item.Numbers.Count; num2++)
                        {
                            if (numbers.Count() == item.Numbers.Count())
                            {
                                AddRepeatTimess(numbers, item, item.Numbers[num2], item.Numbers.Count, ref similarNumCounter);
                            }
                        }
                    }
                    else if (notDuplicateCounter == NumberList.Count && IsMatch == false)
                    {
                        AddNewNum(numbers);
                    }
                }
            }
        }