我有两个int数组
int[] aArray = {1,2,3,4}
int[] bArray= {1,2,3,4,5,6}
我想检查数组bArray是否具有相同序列的aArray的所有元素
有谁知道更好的解决方案?
答案 0 :(得分:0)
如果您只是想知道第二个是否包含第一个数组的所有int
:
bool hasBA = aArray.All(bArray.Contains);
使用Except
+ Any
可能更有效率:
hasBA = !aArray.Except(bArray).Any();
或HashSet
也很有效:
HashSet<int> set = new HashSet<int>(aArray);
bool isSubset = set.IsSubsetOf(bArray);
答案 1 :(得分:0)
int[] aArray = {1,2,3,4};
int[] bArray = { 1, 2, 3, 4, 5, 6 };
bool containsAndSameOrder = true; // this is the variable that will let you know if array bArray has all the elements of aArray in same sequence
if (aArray.Length > bArray)
containsAndSameOrder = false;
else
{
for (int i = 0; i < aArray.Length; i++)
{
if (aArray[i] != bArray[i])
{
containsAndSameOrder = false;
break;
}
}
}