Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Pouze tento týden sleva až 80 % na e-learning týkající se Swiftu. Zároveň využij výhodnou slevovou akci až 30 % zdarma při nákupu e-learningu - více informací.
swift week + discount 30
Avatar
Lukáš Hlaváček:6.4.2020 0:52

Ahoj, zkouším rozdělit jednu vstupní kolekci na několik kolekcí dle kritérií.
V příkladu:
Mám vstupní kolekci.. škoda, opel, škoda, mercedes, BMW, opel, ford, škoda, ford

  1. Metoda jede kolekcí a pokud najde - zde třeba, že škoda je již v kolekci obsažena,vytvoří novou kolekci, kam vloží škodu
  2. Začne projíždět oběmi kolekcemi(první(ško­da, mercedes), druhá(škoda)) a vloží další prvek do první kolekce, která neobsahuje daný prvek - pokud obě z kolekcí prvek obsahují, vytvoří třetí kolekci atd.

Výsledek v tomto případě by měl být
Kolekce 1
škoda, opel, mercedes, BMW, ford
Kolekce 2
škoda, opel, ford
Kolekce 3
škoda
Moc děkuji za případné řešení

Zkusil jsem: Můj pokus o vyřešení tohoto problému vkládám do přílohy - funguje špatně a vím i proč(a zkoušel jsem to na X jiných způsobů), ale nejsem schopen přijít na logiku, která to dá dohromady

Chci docílit: Snažím se udělat organizér úkolů v ASP.NET CORE a potřebuji úkoly, které se kryjí v určitém čase zobrazit tak, aby se nekryly i graficky.

 
Odpovědět
6.4.2020 0:52
Avatar
Odpovídá na Lukáš Hlaváček
Michael Škrášek:6.4.2020 17:40

Pokud jsem to správně pochopil ... chceš toto:

public List<List<Auto>> Get(List<Auto> list)
{
    List<List<Auto>> data = new List<List<Auto>> {
        new List<Auto>()
    };
    int index = 0;

    foreach (Auto element in list)
    {
        while (data[index].Contains(element))
        {
            index++;
            if (index == data.Count)
                data.Add(new List<Auto>());
        }

        data[index].Add(element);
        index = 0;
    }
    return data;
}
Editováno 6.4.2020 17:40
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět
6.4.2020 17:40
"I choose a lazy person to do a hard job. Because that person will find an easy way to do it. " Bill Gates
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Odpovídá na Michael Škrášek
Lukáš Hlaváček:6.4.2020 18:54

Ahoj, geniální, přesně to jsem potřeboval, moc díky, Lukáš

 
Nahoru Odpovědět
6.4.2020 18:54
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.