これがあなたがしていることです。int配列ではなく文字列配列があります。これを行う場合
arr[0]="4,8,10,11,12,14";
arr[1]="1,2,3,4,8,12,14";
var intersection = arr[0].Intersect(arr[1]);
arr[0]
とは文字列であるため、結果として、取得している整数値にそれぞれ対応するarr[1]
文字のリストが取得されます。'4', ',' , '8', '1', '2'
52 44 56 49 50
文字列の配列の代わりに整数行列を宣言する必要がありint [,] arr = new int[100,100];
ますList<List<int>>
。少なくともこのコンテキストでは、文字列のような整数を使用することはできません。
List<List<int>> arr = new List<List<int>>();
arr.Add(new List<int>{4,8,10,11,12,14});
arr.Add(new List<int>{1,2,3,4,8,12,14});
var intersection = arr[0].Intersect(arr[1]);
しかし、私を信じていない場合で、前のコードが意味をなさないことを確認したい場合は、foreach
ループを変更して、何が起こっているかを確認してください。
foreach (char value1 in intersect)
{
//perform logic
}
さらに、これを行う必要はありません。
int zero= Convert.ToInt32(com[0].ToString());
int one= Convert.ToInt32(com[1].ToString());
次のようなものに置き換えることができます。
int zero= com[0];
int one = com[1];
しかし、それにもかかわらず、これを行うことができるので、それは無意味です:
arr[com[0]]
arr[com[1]]