获取两个数组的匹配数

wil*_*iam 0 .net c# linq asp.net linq-to-objects

我有2个阵列.

String[] arrFirst={"a","b","c","d","e"};
String[] arrSecond={"a","b","f","d","g"};
String[] arrThird={"a","f","g","h","e"};
Run Code Online (Sandbox Code Playgroud)

我希望结果像for arrFirstarrSecond,结果是3

对于arrFirstarrThird,结果是2

我找到的所有代码都是比较两个数组并返回它们是否相同.

但我想要的是有多少匹配.

我可以循环方式.

但我认为这将花费太多时间,我想知道是否有更快的方法.

谢谢..

Til*_*lak 6

您可以使用Intersect方法.

    String[] arrFirst={"a","b","c","d","e"};
    String[] arrSecond={"a","b","f","d","g"};
    String[] arrThird={"a","f","g","h","e"};

    arrFirst.Intersect(arrSecond).Count(); // 3
    arrFirst.Intersect(arrThird).Count(); //2
Run Code Online (Sandbox Code Playgroud)

  • +1,Intersect是最恰当的答案.是自己发布,但Tilak打败了我. (3认同)