2017-05-25 112 views

回答

3

使用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(); 
+0

如何删除或替换冒号(;)表单字符串数组。 – elina

+0

@elina检查我更新的答案,以了解如何。 –

0

你需要不相交联

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

最简单的办法是使用Linq做工作

int tmp; 
var c = a.Where(x => b.Contains(x) && !int.TryParse(x, out tmp)).ToArray(); 
+0

不可以,因为它在数字的末尾有';'。所以'!int.TryParse(2,out tmp)'会计算为false,并且它也会返回结果。 –

+0

此列表的表示法是无效的C#结构。应该有'''代替';'所以我认为这是错字。不管你想要达到什么目的,“123”是一个数字,“123”;是一个字符串。 – Misiakw

相关问题