列表和数组中匹配元素的计数

时间:2014-01-01 23:43:57

标签: c#

我有一个列表和一个数组。我想找出数组中与列表中的元素匹配的数量/数量

List<int> list = new List<int>{ 1, 2, 3, 4 };

int[] array = new int[] { 1, 2 };

由于两个匹配元素是1和2,我期待计数2的结果。 有人可以指出我正确的方向吗?

2 个答案:

答案 0 :(得分:4)

您可以使用Count扩展名方法使用一点Linq:

var count = array.Count(list.Contains);

或者,如果您知道数组中没有重复值,则可以使用Intersect方法:

var count = array.Intersect(list).Count();

答案 1 :(得分:2)

您可以使用:

int matches = list.Intersect(array).Count();

请注意,这仅在列表和数组仅包含唯一值时才有效。