IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
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í.

Diskuze: Kolekce List a její porovnávání

V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Vadym Stižko:11.5.2018 16:04

Dobrý den,
mám dotaz ohledně porovnávání dvou kolekcí List.

List<object> a = new List<object>();
List<object> b = new List<object>();
a.Add("Ahoj");
a.Add("Cus");
a.Add("zidle");
a.Add("Dobry den");
b.Add("kocka");
b.Add("slunicko");
b.Add("pocitac");
b.Add("Dobry den");
b.Add("cus");
for (int i = 0; i <3; i++)
{
    int j = 0;
    if (a[i].ToString()==b[j].ToString())
    {
        Console.WriteLine("Správný pozdrav je {0}", a[i]);
    }
    else
    {
        Console.WriteLine("Špatný pozdrav");
    }
}

Potřebuji aby to vzalo "a" a porovnalo se všemi "b". Vyhodilo to, co se shoduje. Nevím jak zjistit kolikrát ten cyklus má běžet a ani jak na ty podmínky. Googlil jsem to, ale nemohu něco kloudného najít.
Budu rád za každou radu. Třeba to dělám úplně blbě. nemám moc zkušenosti s Kolekci List.

 
Odpovědět
11.5.2018 16:04
Avatar
Odpovídá na Vadym Stižko
Luboš Běhounek Satik:11.5.2018 16:09
var c = a.Intersect(b);
Editováno 11.5.2018 16:10
Nahoru Odpovědět
11.5.2018 16:09
https://www.facebook.com/peasantsandcastles/
Avatar
Odpovídá na Luboš Běhounek Satik
Vadym Stižko:11.5.2018 16:16

To mi moc nepomohlo :).

 
Nahoru Odpovědět
11.5.2018 16:16
Avatar
Odpovídá na Luboš Běhounek Satik
lukasko.simon:11.5.2018 16:19

ak by pouzival listy typu object obavam sa ze toto riesenie by nefungovalo, kedze pri referencnych typoch sa defaultne robi porovnanie referencii (ci je to ta ista instancia). Interne sa v intersecte vola metoda equals a tu by musel pretazit a urobit tam vlastnu implementaciu. V prvom rade ak teda do listov posiela iba cisto text, nema vyznam aby tie listy boli typu object. Ak to zmeni na string toto riesenie bude spravne. Doplnim ktomu este ze intersect nasledne vracia kolekciu stringov ktore si potom vie prechadzat cez foreach

 
Nahoru Odpovědět
11.5.2018 16:19
Avatar
Odpovídá na lukasko.simon
Luboš Běhounek Satik:11.5.2018 16:30

Jo, az ted vidim, ze ma listy objektu :)
Ale porad plati to co jsem napsal vejs + k tomu jen ty listy predelat z objektu na konkretni typ (a pripadne overridnout Equals, pokud tam ma naky vlastni typy.

Nahoru Odpovědět
11.5.2018 16:30
https://www.facebook.com/peasantsandcastles/
Avatar
Odpovídá na Vadym Stižko
Luboš Běhounek Satik:11.5.2018 16:30

Misto object tam pouzij rovnou string, pak to bude fungovat.

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
11.5.2018 16:30
https://www.facebook.com/peasantsandcastles/
Avatar
Odpovídá na Luboš Běhounek Satik
Vadym Stižko:11.5.2018 16:45

Super. Funguje, díky moc.

 
Nahoru Odpovědět
11.5.2018 16:45
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 7 zpráv z 7.