/ / Merge Lists i zwracaj tylko duplikaty - c #, linq, list, merge, duplikaty

Scalaj listy i zwracaj tylko duplikaty - c #, linq, list, scalanie, duplikaty

Powiedz, że mam dwie listy:

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

Chcę scalić te dwie listy i zwrócić kolejną listę zawierającą tylko duplikaty w obu.
Więc jeśli mam:

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

Chcę, żeby zwrócił nową listę:

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

Myślę, że użycie LINQ będzie najlepszym strzałem. Jednak nie do końca doszedłem do wniosku, że skoro mam słabe doświadczenie w LINQ.

Odpowiedzi:

17 dla odpowiedzi nr 1

Intersect to, czego chcesz, jest częścią LINQ.

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

Upewnij się, że masz System.Linq przestrzeń nazw, do której odwołuje się plik.


3 dla odpowiedzi № 2

Chcesz „przeciąć” dwa zestawy.

dupes = foo.Intersect(bar);

1 dla odpowiedzi nr 3

Użyj skrzyżowania:

var res = lst1.Intersect(lst2);