4

假设我有两个列表:

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

我想合并这两个列表并返回另一个列表,其中只有两个列表中的重复项。
所以如果我有:

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

我希望它返回一个新列表:

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

我认为使用 LINQ 将是最好的选择。但是,由于我的 LINQ 经验很差,所以我还没有完全意识到这一点。

4

3 回答 3

17

Intersect是你想要的,它是 LINQ 的一部分。

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

确保您System.Linq的文件中引用了命名空间。

于 2012-12-12T20:51:33.483 回答
3

你想要两个集合的“相交”。

dupes = foo.Intersect(bar);
于 2012-12-12T20:51:52.070 回答
1

使用交集:

var res = lst1.Intersect(lst2);
于 2012-12-12T20:52:58.330 回答