あることがあって、配列を比較したくなりまして、ね
二つの配列A,Bについて
A==B
を行ったところ、要素が位置も含め完全に一致しているのに素通りしてしまってね
こんな実験をしてみることにした ※ここではstring型でやりましたが実際はVector3型で使ってます
C#
1using System; 2using System.Linq; 3using System.Collections.Generic; 4 5//宣言------------------------------------------------------------------------------------ 6string[] strA={"one","two","three","two"};//基準 7string[] strB={"one","two","three","two"};//Aと全く同じ 8string[] strC={"two","one","two","three"};//Aとそれぞれ要素の個数同じ、位置が違う 9string[] strD={"three","three","two","one"};//含まれる要素はそろえているが個数も位置も違う、 10 //しかし配列の長さ同じ 11 12//出力------------------------------------------------------------------------------------ 13print(strA==strB);//false。てかこいつがtrueなら質問しなくて済んでた!! 14print(strA.Union(strB).Lenth==strA.Lenth);//trueしかし 15print(strA.Union(strD).Lenth==strA.Lenth);//true 16 17print(strA.Union(strB).Lenth == strB.Union(strA).Lenth);//trueしかし 18print(strA.Union(strD).Lenth == strD.Union(strA).Lenth);//true 19 20print(new[]{strA}.Union(new[]{strB}).Lenth==1);//false 21print(new[]{strA}.Contains(strB));//false 22print(Array.IndexOf(strB,new[]{strA}))//-1 23 24print(strA.Count(A=> strA.Count(a=>a==A) == strB.Count(b=>b==A))==strA.Count);//trueしかし 25print(strA.Count(A=> strA.Count(a=>a==A) == strC.Count(c=>c==A))==strA.Count);//true
最後の奴は通りますが強引すぎて処理数が多すぎます!遅い!第一今回やりたいこととちょっと違います!!
とはいえ、頭悪すぎてこんな感じのばっかりしか思いつきませんでした。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/11 16:10 編集
2018/11/12 11:24 編集
2018/11/12 00:11