Sprawdzanie zagnieżdżeń w liscie

0

Witam,

Mam taki problem powiedzmy że mam taką listę - lista<T>1

<sklep1><produkt1>
<sklep1><produkt2>
<sklep1><produkt3>
<sklep1><produkt1>
<sklep2><produkt4>

i teraz mam kolejną listę - lista<T>2

<sklep1><produkt4>

Mam sprawdzić czy wartość z listy<T>2 jest w liscie<T>1 jeżeli tak to ją dodaje

problem polega że gdy znajdę że jest nazwa sklepu 1 to muszę jakość sprawdzić czy do tego sklepu jest przypisany produkt4 (jest to problem poniewaz w nazwa sklepu 2 jest produkt 4) nie mogę więc sprawdzić czy jest on na liście ale czy istnieje w obrębie tego sklepu.

Ma ktoś pomysł jak to zrobić, bo już 1h nad tym siedzę

Pozdrawiam

0

Chce aby lista po modyfikacji wygladała tak:

<sklep1><produkt1>
<sklep1><produkt2>
<sklep1><produkt3>
<sklep1><produkt4> //tu dodana lista
<sklep1><produkt1>
<sklep2><produkt4>

Czyli system po znalezieniu że istnieje <sklep1> ale nie istnieje w obrębię sklepu1 - produkt4 dodaje taki wiersz

0

Dla każdego obiektu z listy 2, sprawdź czy zawiera się ona w liście 1 (metoda Contains()), jeżeli nie zawiera się to dodaj do listy 1.

0

Ale to raczej nie pomoze ponieważ powie mi: na liscie znaduje się sklep1 i na liscie znajduje sie produkt4 - i nie przypisze nowego wiersza - co będzie błedem ponieważ produkt4 jest przypisany do sklep2 a nie sklep1 a więc wiersze powinny zostać dodane. Należy więc sprawdzić jakoś wystąpienie w obrębie sklepu1

0

Więc masz to źle zaprojektowane. Powinieneś mieć listę obiektów typu Sklep, a klasa Sklep powinna zawierać listę obiektów typu Produkt. Aktualnie mieszasz sklepy z produktami i stąd są problemy. Jak zrobisz tak jak napisałem, to

  1. Najpierw szukasz sklepu, jak jest to sprawdzasz w nim czy jest produkt, jak nie ma to dodajesz
  2. Jak nie ma sklepu, to go dodajesz, a potem dodajesz produkt.
0

A jak do takiej struktury zapisać czy tak jest dobrze?

 
public class DataReportsTmp
    {
        public string kontrahent { get; set; }

        public List<KategoriaProduktu> listkat { get; set; }

    }
 
listkat = new List<KategoriaProduktu>
                                            {
                                                new KategoriaProduktu
                                                {
                                                    Nazwa_kat = tmp_rep_csv.Kategoria,
                                                    Wartosc = tmp_rep_csv.Wartosc
                                                }
                                            }
0

Ale o czym Ty piszesz? Najpierw pisałeś o Sklepie i Produkcie, a w kodzie dajesz jakąs KategoriaProduktu, jakieś DataReportTmp.

0

Podaj prosty, normalny przykład co się znajduje początkowo w dwóch listach, a co ma być w liście wynikowej.

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