Przypisanie wartości do klucza enum C# dictionary

Przypisanie wartości do klucza enum C# dictionary
M1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 7
0

Witam mam problem napisałem kod który generuje losowe liczby i przypisuje je do listy jednak kiedy chce policzyć średnia i wywołać najmniejsza i najwieksza średnia wypisuje Sie tylko 0

Kopiuj
  public enum Average
    {
        average  , min, max 
    };

W ClassA stworzyłem pole i generator liczb losowych

Kopiuj
 class ClassA
    {


        public int Field { get; set; }

        public ClassA()
        {
            Random rng = new Random();
            Field = rng.Next(1, 100);
            Console.WriteLine();
        }

    }

W konstruktorze stworzyłem listę 100 pozycji klasy A i obliczyłem średnią z tych list, ale gdy chcę dodać te dane do listy, to średnia wyświetla tylko do 0 a korzystając z tych pol chciałem znaleźć najniższą i najwyższą średnią z listy, a następnie przypisz ją do klucza w dictionary

Kopiuj
        public ClassB()
        {


            for (int i = 0; i < 100; i++)
            {
                lista.Add(new ClassA());
                Console.WriteLine(lista[i].Field);

            }
             int total = 0;
             int average = 0;

            for (int index = 0; index < lista.Count; index++)
            {

               total = total + Field;
               average = total / lista.Count;
            }

            for (int k = 0; k < 100; k++)
            {
                averages.Add(average);
            }


        }

        public int _Field2
        {
            get
            {
                return Field2;
            }
            set
            {
                _ = averages.Min();
            }
        }

        public int _Field3
        {
            get
            {
                return Field3;
            }
            set
            {
                _ = averages.Max();
            }
        }

Jednak kiedy spróbuję uruchomić kod, pokaże tylko 0 i powinien wyświetlić średnią wartość przypisaną z pól, które przyjmują wartość list.min list.max

Kopiuj
public Dictionary<Average, ClassB> dicc = new Dictionary<Average, ClassB>();
dicc.Add(Average.min, new ClassB(Field2));
dicc.Add(Average.max, new ClassB(Field3));



            foreach(KeyValuePair<Average , ClassB> item in dicc)
            {

                Console.WriteLine(item.Key + "   " + item.Value);
            }
fasadin
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 4883
0

a gdzie wywolujesz set dla _Field3? albo set dla _Field2?

AK
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3561
2
  1. Czym się zajmuje środkowa pętla?
    Która, nawiasem mówiąc, powinna być foreach.
    Niby przechodzi po liście, ale jej nie używa
    średnią się dzieli PO PĘTLI, prosta szkolna wiedza

  2. randomizer się inicjue raz, a nie za każdym razem

  3. generalnie C# jest czytelnym językiem, bardzo się postarałeś aby było to w ogóle nieczytelne. To, że kod początkującego może mieć błędy, to jedno, ale to, ze nie można odtworzyć jaki miał zamiar, to coś zupełnie innego
    Jest w cholerę zbędnych rzeczy.

  4. dzielenie na liczbach całkowitych nie działa tak, jak myślisz. To jest ważne (jak wyczyścisz inne błędy)

  5. zanim zacznie hakersko używać zmiennej podkreślenie, to może najpierw nauczyć się zwyczajnie poprogramować

  6. dziedziczysz B po A? Nie dałeś pełnego kodu. Jakbyś klasom nadał rozsądne nazwy, by prawdopodobnie się ujawnił jakiś paradoks. Np zbiór Gruszek dziedziczy po Jabłku

  7. czytam, czytam i nie mogę zrozumieć. To wygląda jak kilka kodów z neta wklejonych bez rozumienia

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.