最近仕事で作っているアプリで「2つの配列から共通する値を探して処理する」という場面があったのですが意外とはまってしまいました。
慣れてくるとなんてことはないので他のList配列の処理方法と一緒に今後の為にメモ。
2つの配列から共通する値を探す方法
List<int> A = new List<int>(); List<int> B = new List<int>(); //AとBの配列にそれぞれ値を入れる List<int> C= A.FindAll(B.Contains); if(C.Count > 0) { //AとBに共通して含まれる値が1個以上ある for (int i = 0; i < C.Count; i++) { Debug.Log("C i:"+i +" v:"+ C[i]); //共通する値を1つずつ取り出して表示 } }
配列の含まれる特定の値のindexを取得する方法
List<int> A = new List<int>(); //Aに値を入れる int index = A.IndexOf("特定の値"); Debug.Log("index:"+index); //特定の値のindex
配列から特定の条件に絞った配列を新規作成する
List<int> A = new List<int>(); //Aに値を入れる List<int> B = A.FindAll(n => n > 0); //値が0以下を取り除く
配列に特定の値が含まれるかチェックする
List<int> A = new List<int>(); //Aに値を入れる if (A.Contains("含まれるか調べたい値") ) { //Aに含まれる }
2つの配列が全て同じ値を含む配列かチェックする
List<int> A = new List<int>(); List<int> B = new List<int>(); //AとBの配列にそれぞれ値を入れる if (A.SequenceEqual(B) ) { //AとBは同じ値を含む配列 }