
Code below is for pattern a, feel like once I get a I could get the others.
I like the array[int].length syntax in Java and was helpful to get the pattern to print as shown in the picture. But I do not think such a thing exists in C#.
class Main {
    public static void main(String[] args)
    {
        char[][] arr = new char[10][10];
        int starCount = 10;
        for(int i = 0; i < arr.length; i++)
        {
            for(int j = 0; j < starCount; j++)
            {
                arr[i][j] = '*';
            }
            for(int k = starCount; k < arr[i].length; k++)
            {
                arr[i][k] = '-';
            }
            starCount--;
        }
        for(int a = 0; a < arr.length; a++)
        {
            for(int b = 0; b < arr[a].length; b++)
            {
                System.out.print(arr[a][b]);
            }
            System.out.println();
        }
    }
}
This code prints the * in a decreasing fashion but I am struggling with how to replace the empty elements of the array with the - character as shown in the image.
class MainClass {
    public static void Main (string[] args)
    {
        char[ , ] arr = new char[10,10];
        int starCount = 10;
        for(int i = 0; i < arr.Length; i++)
        {
            for (int j = 0; j < starCount; j++)
            {
                arr[i , j] = '*';
            }
            for (int k = 0; ) //IDK WHAT TO DO TO ASSIGN ARR[I , K] = '-';
                starCount--;
        }
        for (int i = 0; i < 10; i++)
        {
            for (int j = 0; j < 10; j++)
            {
                Console.Write(arr[i , j]);
            }
            Console.WriteLine();
        }
    }
}