Количество вхождении строки в массив рекурсией

Не могу понять как посчитать количество вхождении строки в массив с помощью рекурсией без linq c#. Есть строка string "abcdef" и массив char { 'a', 'e' }.

public static int GetCharsCount(string str, char[] chars)
        {            
            if (chars[0] == str[0])
            {
                return 1 + GetCharsCount(str[1..], chars);
            }
            else
            {
                return GetCharsCount(str[1..], chars);
            }

            return GetCharsCount(str, chars);

Ответы (1 шт):

Автор решения: Nyuhnyash

Условие выхода из рекурсии нужно указывать до основной части.

public static int GetCharsCount(
    string str, char[] chars,
    int charsIndex = 0  // значение по умолчанию для внешних вызовов
)
{
    if (charsIndex == chars.Length)
    {
        charsIndex = 0;
        str = str[1..];
    }

    if (str == String.Empty) // условие выхода
        return 0;

    return (chars[charsIndex] == str[0] 
            ? 1
            : 0) 
        + GetCharsCount(str, chars, charsIndex + 1);
}
→ Ссылка