dodawanie obiektu do listy list c#

0

Witam

Mam takie pytanie jak dodać obiekt do listy list. Chodzi mi o to, że w mainwindow.xaml.cs mam listę klientów List<Klient> a w klasie klient z kolei mam listę kont List<Rodzajekont>. Chciałabym teraz zainicjować kilka wartości aby mieć na czym pracować, potrzebuję dodać kilka obiektów klasy klient (to zrobiłam) a następnie pod danego klienta podpiąć jakieś rodzaje kont. Niestety nie mogę tego zrobić mimo, iż korzystam z podpowiedzi c#.

0

Masz listę kont czy listę rodzajówKont?
Do elemementów listy mozesz sie dobierać np po indexie:

listaKlientow[0]

Mozna tez w taki sposob:

var klient = listaKlientow.Where(k => k.Nazwisko == "Nowak").First().

Pokaż kod najlepiej.

0

klasa Klient

public class Klient 
    {
        private static int KlientID = 1;
        public string numer { get; set; }

        public string numerklienta { get; set; }
        public string nazwisko { get; set; }

        public ObservableCollection<ListaKont> jakieKonta = new ObservableCollection<ListaKont>();
        //public ObservableCollection<Biezace> rory = new ObservableCollection<Biezace>();
        //public ObservableCollection<Lokata> lokaty = new ObservableCollection<Lokata>(); 
        //public ObservableCollection<Debet> debety = new ObservableCollection<Debet>();
        
        public Klient(string nazwisko)
        {
            this.numerklienta = (KlientID++).ToString();
            this.nazwisko = nazwisko;

            //rory.Add(new Biezace());
            //lokaty.Add(new Lokata(30,4));
           // debety.Add(new Debet());
            jakieKonta.Add(new ListaKont());
        }

        public Klient(string nazwisko, string nur)
        {
            this.numerklienta = nur;
            this.nazwisko = nazwisko;

            //rory.Add(new Biezace());
            //lokaty.Add(new Lokata(30,4));
           // debety.Add(new Debet());
            jakieKonta.Add(new ListaKont());
        }

        public override string ToString()
        {
            //return nazwisko + " " + imie + " [" + sr + "]";
            string s = this.nazwisko + " ";// + String.Format("{0:N2}", srednia());
            
            return s;
        }

    }

klasa Listakont

public class ListaKont
    {
        public Lokata Lokat { get; set; }
        public Debet Debety { get; set; }
        public Biezace Biezacy { get; set; }

xaml.cs

{  
        public ObservableCollection<Klient> ktosie= new ObservableCollection<Klient>();
        public MainWindow()
        {
            InitializeComponent();

            //Klient k = new Klient("Bas");
            ktosie.Add(new Klient("Bas"));
            ktosie.Add(new Klient("Kowalski"));
          //  k.rory.Add(new Biezace());
           // k.lokaty.Add(new Lokata());
            ktosie.Add(new Klient("Nowak"));
            ktosie.Add(new Klient("Iksianski"));
            Klient k = new Klient("Nowak");
            Biezace b = new Biezace();
           // var kl = new ObservableCollection<Klient()>;
            
            //k.lokaty = new ObservableCollection<Lokata>();
            //k.lokaty.Add(new Lokata(300,4));

            klienci.ItemsSource = ktosie;

            klienci.Focus();
            if (klienci.Items.Count > 0) listakont.SelectedIndex = 0;

            klienci.Focus();

          //  listakont.ItemsSource = k.rory;
          //  listakont.ItemsSource = k.lokaty;
           listakont.ItemsSource = ktosie;
        }

        private void listakont_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            //Klient k = new Klient("Bas");
           //ListaKont lk = ((sender as ListBox).SelectedItem as ListaKont);
          //  ObservableCollection<Biezace> ror = k.rory;
            //ObservableCollection<Lokata> lok = k.lokaty;
            //ObservableCollection<Debet> deb = k.debety;
           // List<ListaKont> lk = k.jakieKonta;
          //  listakont.ItemsSource = ror;
            //listakont.ItemsSource = lok;
            //listakont.ItemsSource = deb;
        }

        private void klienci_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {


        /* if(klienci.SelectedItem.ToString()=="Kowalski")
            {
                Lokata lokat = new Lokata(30,4);
                listakont.DisplayMemberPath = lokat.NumerSaldoLok;
                listakont.ItemsSource = lokat.NumerSaldoLok;
                
            }*/

                    /* if(klienci.SelectedItem!=null)
            {
                string nazwa = klienci.SelectedItem.ToString();

                Klient kl = new Klient(nazwa);

                if(kl.lokaty!=null)
                {
                    listakont.ItemsSource = kl.lokaty.ToString();
                }

            }*/
        }
    }

przepraszam nieprecyzyjnie się wyraziłam chodzi o to że do comboxa dodałam kilka nazwisk i teraz chcę dodać do listboxa kilka kont np. niech kowalski ma konto ror a niech iksiński ma ror i lokatę i nie wiem jak mogę zrobić aby te obiekty wskoczyły pod konkrete nazwisko

0

public class Client
{
public List<Account> Accounts {get; set; } = new List<Account>();
}

public class Account
{
public AccountType AccountType {get; set;}

}

public enum AccountType
{
Type1, //nie wiem jak jest lokata po angielsku :(
Type2 // nie wiem jak jest oszczednosciowe po angielsku :(
}

var firstClient = new Client();
var firstAccount = new Account();
firstAccount.AccountType = AccountType.Type1;
firstClient.Accounts.Add(firstAccount);

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