I want to start by saying I am very new (1 week) into learning C#, so I sincerely apologize if this question is obvious. I do understand the reason for the exception, diverse.Length has to be 0 or greater. However, I am required to have the formula in my code so as to get the numbered-positions of the last 2 characters of an ever changing string (diverse).
Below, are 3 sets of code....
Firstly my working method.
static void Main(string[] args)
{
        try
        {
            // Sample data - inputs 3 ints.
            Console.WriteLine(Solution1(6, 1, 1));
            Console.WriteLine(Solution1(1, 3, 1));
            Console.WriteLine(Solution1(0, 1, 8));
            Console.WriteLine(Solution1(5, 2, 4));
        }
        catch (Exception e)
        {
            Console.WriteLine(e.Message);
        }
}
static string Solution1(int A, int B, int C)
{
            string a = "a"; // a/b/c are added to string diverse when needed.
            string b = "b";
            string c = "c";
            string diverse = "";
            int totalLength = A + B + C; // Length of all 3 arrays
            for(int i = 1; i <= totalLength; i++) 
            {
                if (A >= B && A >= C && A > 0) { diverse = diverse + a; A = A - 1; }
                if (B >= A && B >= C && B > 0) { diverse = diverse + b; B = B - 1; }
                if (C >= A && C >= B && C > 0) { diverse = diverse + c; C = C - 1; }
            }
            return diverse;
}
What I am trying to do is add an additional check to my code. This check will take the printed letters and check to see if 2 of the same letter has previously been printed. If so, it will not print a 3rd. To do this I made a solution that would find the last 2 characters of the string (as I mentioned above) and compare it to the conditional check in the if statement.
Below is the code with this additional check, that I need to get working...
static string Solution1(int A, int B, int C)
{
    string a = "a"; // a/b/c are added to string diverse when needed.
    string b = "b";
    string c = "c";
    string diverse = "";
    int totalLength = A + B + C; // Length of all 3 arrays
    for (int i = 1; i <= totalLength; i++)
    {
        // Finds the last 2 characters in the diverse string.
        int LastTwoChars = diverse.Length - 2;
        string twoCharCheck = diverse.Substring(LastTwoChars, 2);
        if (A > 0 && B < 2 && C < 2 && twoCharCheck != "aa")
        {
            diverse = diverse + a; A = A - 1;
        }
        if (B > 0 && A < 2 && C < 2 && twoCharCheck != "bb")
        {
            diverse = diverse + b; B = B - 1;
        }
        if (C > 0 && B < 2 && A < 2 && twoCharCheck != "cc")
        {
            diverse = diverse + c; C = C - 1;
        }
    }
    return diverse;
}