2017-05-25 17 views
2
string[] a = { 2; a; 3; b; 4; c} 
string[] b = { 2; a; 6; c} 

この2つの配列を比較して、すべての桁(2,3,4,6)の値を削除し、一致する文字列の値を別の配列に格納したいとします。私はこれを試してみましたが、それはすべての値を加算した2つの文字列配列を比較し、一致する値を別の文字列配列に格納する方法はありますか?

string[] c = {a; c;} 

は、私はこのような結果が欲しいです。

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

'Union'はそのようには機能しません。 'Intersect'を使用してください – Sweeper

答えて

3

使用IntersectWhereを行うためにLinqを使用することです:

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

最も簡単な解決策は、ジョブ

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

関連する問題