c#如何部分比较int数组

时间:2014-10-31 10:59:25

标签: c#-4.0

我有两个int数组

int[] aArray = {1,2,3,4}
int[] bArray= {1,2,3,4,5,6}

我想检查数组bArray是否具有相同序列的aArray的所有元素

有谁知道更好的解决方案?

2 个答案:

答案 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;
        }
    }
}