C#:检查数组中的子数组

时间:2011-04-07 15:38:17

标签: arrays combinations

我想知道C#中一种有效的方法来检查一个子数组是否存在于一个更大的数组中,数组总是按数字顺序排列,例如:

x = {1,2,3,4,5,6}
y = {3,4}
z = {6,7}

y in x = TRUE

z in x = FALSE

2 个答案:

答案 0 :(得分:0)

在x示例中考虑你的y 首先你可以检查

if(y[0] <= x[x.length-1])
    //binary search in array x for y[y.length-1]
    //if that is true u can say that y in x else false. 

答案 1 :(得分:0)

var x = new HashSet<int>(Enumerable.Range(1,6)); // [1,2,3,4,5,6]
var y = Enumerable.Range(1,3); // [1,2,3]
var z = Enumerable.Range(6,2); // [6,7]
x.IsSupersetOf(y); // true
x.IsSupersetOf(z); // false