Страницы

Поиск по вопросам

понедельник, 30 декабря 2019 г.

Как вывести на экран количество элементов в массиве имеющих конкретное значение?

#c_sharp #массивы


Я создала строковый массив,и рандомно присвоила элементам значения в помощью переменной
типа int (0,1) и вывела на консоль "черное" и "белое". Как вывести на экран еще и количество
элементов в массиве отдельно с названием "черное" и названием "белое"?

int numberOfBalls = 100;
string[] balls = new string[numberOfBalls];

Random rnd = new Random();
int a = rnd.Next(0, 2);

for (int i = 0; i < numberOfBalls; i++)
{
    a = rnd.Next(0, 2);
    if (a == 0)
        balls[i] = "beloe";
    else
        balls[i] = "chernoe";
}

for (int i = 0; i < numberOfBalls; i++)
{
     Console.WriteLine(balls[i]);
}

    


Ответы

Ответ 1



Воспользуйтесь методом расширения Count: Console.WriteLine(balls.Count(s => s == "beloe")); Классический вариант сделать тоже самое вручную в цикле: int count = 0; foreach (string s in balls) if (s == "beloe") ++count; Console.WriteLine(count); С помощью цикла for: int count = 0; for (int i = 0; i < numberOfBalls; ++i) if (balls[i] == "beloe") ++count; Console.WriteLine(count); Для подсчета количества "черных" код аналогичен.

Ответ 2



А можно в списке так и хранить 0 и 1 (занимает меньше места в памяти), а проверку черное/белое проводить перед выводом текста. Тогда сумма черных будет var black = balls.Sum(); без всяких циклов (т.к. в списке только 0 и 1, то сумма всех элементов даст нам сумму единиц, которая и есть количество "черных" элементов). А сумма белых: var white = numberOfBalls - black;

Комментариев нет:

Отправить комментарий