/ / Zlúčiť zoznamy a vrátiť len duplikáty - c #, linq, zoznam, zlúčiť, duplikovať

Zlúčiť zoznamy a vrátiť iba duplicity - c #, linq, list, merge, duplicity

Povedz, že mám dva zoznamy:

List<string>foo=new List<string>();
List<string>bar=new List<string>();

Chcem zlúčiť tieto dva zoznamy a vrátiť ďalší zoznam len s duplikátmi v oboch.
Takže ak mám:

//pseudocode
foo={"baz","lemons","somethingelse"}
bar={"what","another","baz","somethingelse","kitten"}

Chcem, aby vrátila nový zoznam:

//pseudocode
dupes={"baz","somethingelse"}

Myslím, že použitie LINQ bude najlepší záber. Avšak, ja som "docela si myslel, že pretože mám zlé skúsenosti LINQ.

odpovede:

17 pre odpoveď č. 1

Intersect je to, čo chcete, je súčasťou LINQ.

dupes = foo.Intersect(bar).ToList();

Uistite sa, že máte System.Linq vo vašom súbore.


3 pre odpoveď č. 2

Chcete "Intersect" dvoch súborov.

dupes = foo.Intersect(bar);

1 pre odpoveď č. 3

Použiť križovatku:

var res = lst1.Intersect(lst2);