Avatar
Vadym Stižko:11. května 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. května 16:04
Avatar
Luboš Satik Běhounek
Autoredaktor
Avatar
Odpovídá na Vadym Stižko
Luboš Satik Běhounek:11. května 16:09
var c = a.Intersect(b);
Editováno 11. května 16:10
Nahoru Odpovědět 11. května 16:09
https://www.facebook.com/peasantsandcastles/
Avatar
Odpovídá na Luboš Satik Běhounek
Vadym Stižko:11. května 16:16

To mi moc nepomohlo :).

 
Nahoru Odpovědět 11. května 16:16
Avatar
Odpovídá na Luboš Satik Běhounek
lukasko.simon:11. května 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  +1 11. května 16:19
Avatar
Luboš Satik Běhounek
Autoredaktor
Avatar
Odpovídá na lukasko.simon
Luboš Satik Běhounek:11. května 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. května 16:30
https://www.facebook.com/peasantsandcastles/
Avatar
Luboš Satik Běhounek
Autoredaktor
Avatar
Odpovídá na Vadym Stižko
Luboš Satik Běhounek:11. května 16:30

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

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět 11. května 16:30
https://www.facebook.com/peasantsandcastles/
Avatar
Odpovídá na Luboš Satik Běhounek
Vadym Stižko:11. května 16:45

Super. Funguje, díky moc.

 
Nahoru Odpovědět 11. května 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.