2017-05-25 118 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

相關問題