• 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.

VPS Starter Arubacloud
0 głosów
275 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 (51,890 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 (251,210 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,042 wizyt
pytanie zadane 6 grudnia 2015 w C i C++ przez DualOxygen Użytkownik (810 p.)
0 głosów
1 odpowiedź 517 wizyt

92,452 zapytań

141,262 odpowiedzi

319,085 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...