Подсчет количества раз, когда значение появляется в массивеC#

Место общения программистов C#
Anonymous
Подсчет количества раз, когда значение появляется в массиве

Сообщение Anonymous »

Итак, какой хороший и простой алгоритм создания цикла в C#, в котором каждый раз, когда определенное значение появляется в массиве, он добавляет 1 к счетчику в другом массиве?

Например, у меня есть это:

Код: Выделить всё

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication22
{
class Program
{
const int SIZE = 12;

static void Main(string[] args)
{
int[] numbers = new int[SIZE] {5, 5, 5, 7, 7, 7, 9, 7, 9, 9, 9, 1};
string[] letters = new string[SIZE] { "m", "m", "s", "m", "s", "s", "s", "m", "s", "s", "s", "s" };
int[] values = new int[SIZE] {15, 22, 67, 45, 12, 21, 24, 51, 90, 60, 50, 44};
string[] status = new string[SIZE] { "f", "m", "f", "a", "m", "f", "f", "f", "m", "f", "m", "f" };

int[] Count = new int[4];
int x = 0;
int i = 0;

for (i = 0; i < SIZE - 1; i++)
{
if (numbers[i] > 0 && numbers[i] < SIZE)
{
x = Count[i];
Count[x]++;
}
}

for (i = 0; i < 4; i++)
{
Console.WriteLine("{0}", Count[4]);
}
}
}
}
Я подсчитываю только количество раз, когда в массиве чисел появляется 4 числа. Кто-то предложил мне использовать этот метод в первом цикле, но он, похоже, не работает и создает ошибку о том, что индекс находится за пределами массива. Я хочу отобразить, сколько раз каждое из этих чисел (5, 7,9 и 1) появляется в 4 строках.

РЕДАКТИРОВАТЬ: без использования LINQ или какой-либо другой причудливой вещи, такой как словарь или что-то еще.

Вернуться в «C#»