Nie potrafię stworzyć pętli foreach z instrukcją warunkową if.

0

Potrzebuję stworzyć pętle foreach która będzie porównywała obrót wszystkich z pracowników(ich obrót umieszczony jest w listboxie) ze średnim obrotem wszystkich pracowników. Pracownicy którzy mają poniżej średniej kwalifikują się do zwolnienia. Chce aby każdy wpis w list boxie po spełnieniu warunku że są do wywalenia iterował zmienna licznik. Co robię źle ?

0

Porównujesz z kolekcją, nie z konkretną wartością co oczywiście nie ma sensu.
Jakiego typu elementy są w listboxie?

Poza tym masz średnik za foreach.

0

Są to liczby a dokładnie obrót jaki wykonał pracownik w ciągu roku. To zamiast listbox1.items co mam napisać aby porównywało z wartością danego pracownika a nie ze wszystkim na raz ?

0

To nawet nie porównuje ze wszystkimi na raz. Ten kod nie ma sensu więc ciężko go wytłumaczyć.

Widzę w kodzie że są to liczby decimal.
W takim razie robisz tak:

// Elementy z listboxa konwertujemy na listę decimal
List<decimal> numbers = listBox1.Items.Cast<decimal>().ToList();

decimal average = numbers.Average(); // Obliczanie średniej można zrobić tak

int count = 0; // Ilość wystąpień
foreach (decimal number in numbers)
{
    if (number > average)
        count++;
}	

Albo:

// Elementy z listboxa konwertujemy na listę decimal
List<decimal> numbers = listBox1.Items.Cast<decimal>().ToList();

decimal average = numbers.Average();
int count = numbers.Where(e => e > average).Count(); // Zamiast pętli foreach

1 użytkowników online, w tym zalogowanych: 0, gości: 1