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

C# Klasa z kolekcjami

Object Storage Arubacloud
0 głosów
391 wizyt
pytanie zadane 24 marca 2016 w C# przez kertoip Nowicjusz (120 p.)
Witam
To moje początki z C# i chętnie przyjmę każdą pomoc w tej sprawie
Mam taki problem

Mam klasę w której pola są zadeklarowane jako kolekcje. Klasy Readers,Books oraz Hire są wcześniej zadeklarowane.

Muszę stworzyć metodę , która dodaje nowe elementy do kolekcji. Jak to zrobić w takim wypadku ?
Problemem jest jak zaimplementować to, że podajemy dowolną klasę spośród R,B,H a metoda wstawia element do odpowiedniej kolekcji.

 

class Data
        {
            public List<Readers> field_1;
            public Dictionary<int, Books> field_2;
            public ObservableCollection<Hire> field_3;

 }

2 odpowiedzi

0 głosów
odpowiedź 24 marca 2016 przez jegor377 Stary wyjadacz (13,230 p.)
zrób 3 metody dla każdego fielda. Każdy GenericCollection posiada metodą Add(). Niech te metody dodają do fieldów elementy wg. tego jak chcesz je dodać.
0 głosów
odpowiedź 24 marca 2016 przez niezalogowany
edycja 24 marca 2016

Trzeba stworzyć generyczną metodkę. 

Lecz listy i słowniki mają troszkę inną strukture. Obawiam się ze jedna metodka nie wystarczy


class Event { }

    class Person { }

    class GenericTest
    {
        public List<Person> Persons { get; set; }
        public Dictionary<int, Event> EventsDic { get; set; }
        public ObservableCollection<Event> Events { get; set; }

        public GenericTest()
        {
            Persons = new List<Person>();
            Events = new ObservableCollection<Event>();
            EventsDic = new Dictionary<int, Event>();            

            AddObject<Event>(Events, new Event());
            AddObject<Person>(Persons, new Person());
            AddObject<int,Event>(EventsDic, new KeyValuePair<int, Event>());
        }

        private void AddObject<T>(ICollection<T> list, T obj)
        {
            list.Add(obj);
        }

        private void AddObject<TKey, TValue>(ICollection<KeyValuePair<TKey, TValue>> list, KeyValuePair<TKey, TValue> obj)
        {
            list.Add(obj);
        }        
    }

Podobne pytania

0 głosów
1 odpowiedź 560 wizyt
pytanie zadane 12 września 2018 w C# przez Antero00 Gaduła (3,670 p.)
0 głosów
1 odpowiedź 117 wizyt
pytanie zadane 5 sierpnia 2019 w C# przez seba Dyskutant (8,900 p.)
–1 głos
0 odpowiedzi 236 wizyt
pytanie zadane 20 czerwca 2018 w C# przez Darkeez90 Nowicjusz (120 p.)

92,570 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,958 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!

...