Beispiel #1
0
        public string GetRepeatedLetters(RepetitionCode repetitionCode)
        {
            var sb     = new StringBuilder();
            var length = sequence[0].Length;

            for (int i = 0; i < length; i++)
            {
                var repeatedLetter = sequence
                                     .Select(c => c[i])
                                     .GroupBy(c => c)
                                     .LetterOrder(repetitionCode)
                                     .Select(c => c.Key)
                                     .First()
                                     .ToString();

                sb.Append(repeatedLetter);
            }

            return(sb.ToString());
        }
Beispiel #2
0
        public static IOrderedEnumerable <IGrouping <char, char> > LetterOrder(this IEnumerable <IGrouping <char, char> > grouping, RepetitionCode repetitionCode)
        {
            IOrderedEnumerable <IGrouping <char, char> > orderedLetters = null;

            switch (repetitionCode)
            {
            case RepetitionCode.MostFrequent:
                orderedLetters = grouping.OrderByDescending(c => c.Count());
                break;

            case RepetitionCode.LeastFrequent:
                orderedLetters = grouping.OrderBy(c => c.Count());
                break;
            }

            return(orderedLetters);
        }