c#编写一个程序,在0-9之间随机生成100个整数,求出生成每一个数的数量

前面都完成了,不知道如何输出每个数的数量。

int[] arr = new int[10];
            Random r = new Random();
            int i;
            for (i = 0; i < arr.Length; i++)
            {
                int um = r.Next(1, 101);
                arr[i] = um;
                Console.WriteLine("Element[{0}] = {1}", i, arr[i]);
            }
            for (i = 0; i < arr.Length - 1; i++)
            {
                int minValue = arr[i];
                int minValueIndex = i;
                for (int j = i + 1; j < arr.Length; j++)
                {
                    if (arr[j] < minValue)
                    {
                        minValue = arr[j];
                        minValueIndex = j;
                    }
                }
                if (i != minValueIndex)
                {
                    int tmp = arr[minValueIndex];
                    arr[minValueIndex] = arr[i];
                    arr[i] = tmp;
                }
            }
            Console.WriteLine("从小到大是:");
            foreach (var item in arr)
            {
                Console.Write(item + " ");
            }


哪里弄来的代码,感觉与你题意不符,你要100个(0~9)随机数,为何arr[10]?,怎么挤进去的?
还有,如果是统计每一数的数量,你的排序代码就是多余的了,有更好的算法

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() {
    int i, num;
    int count[10] = {0}; // 存储每个数字出现的次数,初始化为0

    srand((unsigned) time(NULL)); // 初始化随机数种子

    // 生成100个随机数,并统计每个数字出现的次数
    for (i = 0; i < 100; i++) {
        num = rand() % 10; // 生成0-9之间的随机整数
        count[num]++; // 将num出现的次数加1
    }

    // 输出每个数字出现的次数
    for (i = 0; i < 10; i++) {
        printf("%d: %d\n", i, count[i]);
    }

    return 0;
}