如何比较两个字符串数组并将匹配值存储在另一个字符串数组中?

时间:2017-05-25 06:47:25

标签: c# arrays .net string linq

string[] a = { 2; a; 3; b; 4; c}
string[] b = { 2; a; 6; c}

我想比较这两个数组并删除所有数字(2,3,4,6)值并将匹配字符串值存储在另一个数组中。

我想要这样的结果:

string[] c = {a; c;}

我尝试了这个,但它正在添加所有值。

string[] result = a.Union(b).ToArray();

3 个答案:

答案 0 :(得分:4)

使用IntersectWhere

string[] result = a.Intersect(b).Where(c => !char.IsDigit(c[0])).ToArray();

根据您的评论删除或替换冒号(;):

string[] result = a.Intersect(b).Where(c => !char.IsDigit(c[0]))
                                .Select(c => c.Replace(';',' ')).ToArray();

答案 1 :(得分:0)

您需要Intersect not Union

string[] result  = a.Intersect(b).ToArray();

答案 2 :(得分:-1)

最简单的解决方案是使用spyOn来完成工作

Linq