Foreach po Combinations z nugeta Combinatorics

0

Witajcie ;)

class Produkt
{
   public string nazwa =  "nazwa";
   ...
}
class Koszyk
{
   public List<Produkt> produkty = new List<Produkt> {};
   ...
}
class ZbiorZdarzenCzestych
{
   public List<Koszyk> listaKoszykow = new List<Koszyk> {};
   ...
}
class Main
{
   public List<ZbiorZdarzenCzestych> F = new List<ZbiorZdarzenCzestych> {};
   public List<ZbiorZdarzenCzestych> C = new List<ZbiorZdarzenCzestych> {};
   ...
   var kombinacje = new Combinations<Koszyk>(F[0].listaKoszykow, 2); // Koszyki w C[0] mają po jednym produkcie w sobie
   C.Add(new ZbiorZdarzenCzestych());
   foreach (var k in kombinacje)
   {
      // I w tym miejscu chciałbym tę kombinację k zapisać do List<ZbiorZdarzenCzestych> C
      // Próbowałem kodu poniżej lecz nie działa, jakiś problem z rzutowaniem którego niestety sam nie potrafię rozwiązać
      C[0].listaKoszykow.Add(new Koszyk ());
      foreach (var p in (IEnumerable<List<Produkt>>)k)
      {
         C[0].listaKoszykow[i].produkty.Add(p); // Tu mam błąd "cannot convert from 'System.Collections.Generic.List<Apriori_1_0.Produkt>' to 'Apriori_1_0.Produkt'"
      }
   }
}

Mam problem taki jak opisałem w kodzie powyżej. Z góry dziękuję za odpowiedź.
Pozdrawiam ;)

0

Ni cholery nie wiadomo o co Ci chodzi.

C[0].listaKoszykow.Add(new Koszyk ());

Nie możesz tego zrobić bo C to kolekcja ZbiorZdarzenCzestych a ty próbujesz wcisnąć tam Koszyk??
A tego co się dzieje w tej zagnieżdżonej pętli nawet nie chce mi się opisywać...
Musisz najpierw powiedzieć co twój kod powinien robić. Bo na razie to wygląda tak: Zmieniasz koło samochodu, z przyklejoną cegłą do czoła i pytasz czemu widelcem nie można jeść zupy.

0
C[0].listaKoszykow.Add(new Koszyk ());

Nie wciskam Koszyka do ZbioruZdarzeńCzestych tylko do listyKoszyków w tym zbiorze.

A chodzi mi o to że:

  1. robię kombinację koszyków ze ZbioruZdarzeńCzestych F[0] <- tu koszyki mają po jednym produkcie w sobie
  2. z produktów w koszykach z jednej kombinacji powyżej tworzę nowy Koszyk w ZbiorzeZdarzeńCzestych C[0] <- a tu z każdej kombinacji tworzy się jeden koszyk z dwoma produktami

Mam nadzieję, że rozjaśniłem o co mi chodzi

0

Dobra w pierwszym się pomyliłem.

Czemu tworzysz kolekcję ZbiorZdarzenCzestych skoro zawsze bierzesz tylko pierwszy element?
Co do pkt 2 skąd ma się wziąć ten drugi produkt?

0

To jest tylko fragment kodu W rzeczywistości zbiorów zdarzeń częstych jest więcej, a co do drugiego punku to napiszę jeszcze raz.

var kombinacje = new Combinations<Koszyk>(F[0].listaKoszykow, 2);

Z tego kodu powyrzej wychodzi mi lista kombinacji w postaci Kombinacja = {Koszyk(z jednym Produktem na liście produkty), Koszyk(z jednym Produktem na liście produkty)}
no ale to chyba jasne.
Następnie chcę pobrać jedną taką kombinację i z 2 koszyków w niej zawartych pobrać produkty i skopiować je do nowego koszyka w ZbiorZdarzenCzestych C (tutaj koszyk ma na liście produkty dwa elementy). Mam nadzieję, że teraz już jaśniej to napisałem, jeżeli nie to postaram się bardziej jeżeli zostanie zwrócona mi uwaga o konkretnej rzeczy.

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