• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Obliczenie średniej przy użyciu ArrayList.

Object Storage Arubacloud
0 głosów
295 wizyt
pytanie zadane 26 lutego 2023 w C# przez Ultimate1991 Początkujący (260 p.)

Witam, jaką komendę można wykorzystać do zsumowania elementów w ArrayList? Wstawiam kod źrodłowy jak to zrobiłem w tabeli i jak nie potrafię zrobić tego w liście. Pozdrawiam.

namespace CheckSkills
{
    internal class Program
    {
        static void Main(string[] args)
        {
        FirstExercise();
        SecondExercise();
        }
        static void SecondExercise()
        {
            int[] table = new int[5] {3,6,1,2,4};
            double sum = 0;
            double srednia = 0;

            for (int i = 0; i < table.Length; i++)
            {
                sum += table[i];
            }
            srednia = sum / table.Length;
            Console.WriteLine($"Srednia ocen to {srednia}.");
            Console.ReadKey();
        }
        static void FirstExcercise()
        {
            ArrayList lista = new ArrayList();
            lista.Add(4);
            lista.Add(5);
            lista.Add(2);
            lista.Add(3);

            double sum = 0;
            double srednia = 0;

            for (int i = 0; i < lista.Count; i++)
            {
                sum += lista[i];
            }

            srednia = sum / lista.Count;
            Console.ReadKey();

        }
    }
}

 

komentarz 26 lutego 2023 przez Velta Maniak (52,370 p.)
edycja 26 lutego 2023 przez Velta

Dlaczego kolekcja typu ArrayList?

Nie jest generyczna ani specjalnie szybsza, a twórca .NET w dokumentacji odradza jej używania.

Zdecydowanie lepszym wyborem byłaby klasyczna lista, na której można by zastosować zapytanie LINQ:

List<int> numbersList = new() { 4, 5, 2, 3 };
double listAverage = numbersList.Average();

Przy czym dla dobrych nawyków w tym przypadków lepiej byłoby zastosować tablicę:

int[] numbers = { 4, 5, 2, 3 };
double numbersAverage = numbers.Average();

A żeby stworzyć rozwiązanie inne niż z wykorzystaniem LINQ, mogłoby wyglądać tak jak poniżej:

int[] numbers = { 4, 5, 2, 3 };
int numbersSum = 0;

foreach (int number in numbers)
{
    numbersSum += number;
}

double numbersAverage = (double)numbersSum / numbers.Length;

Po kolekcji ArrayList też możesz iterować, ale – jak wyżej. No i przy bardziej skomplikowanych poczynaniach może się zakończyć wyrzuconym wyjątkiem.

2 odpowiedzi

0 głosów
odpowiedź 27 lutego 2023 przez VBService Ekspert (253,420 p.)
wybrane 28 lutego 2023 przez Ultimate1991
 
Najlepsza

Do tego co już napisał @Velta;

 

...jaką komendę można wykorzystać do zsumowania elementów w ArrayList?

użyj pętli foreach

[ on-line ]

foreach (int number in lista)
{
    sum += number;
}

 

0 głosów
odpowiedź 26 lutego 2023 przez Ultimate1991 Początkujący (260 p.)
Faktycznie można wbić gwóźdź wiertarką, ale zdecydowanie lepiej użyć do tego młotka. Dopiero się uczę i jak to bywa na początku - zdarza się zbłądzić. Dzięki pomogło. ;-)

Podobne pytania

0 głosów
4 odpowiedzi 1,064 wizyt
pytanie zadane 6 grudnia 2015 w C i C++ przez DualOxygen Użytkownik (810 p.)
0 głosów
1 odpowiedź 527 wizyt

92,579 zapytań

141,432 odpowiedzi

319,662 komentarzy

61,963 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...