方法一:
可以使用Array.IndexOf方法来实现。
示例代码如下:
int[] array1 = { 1, 2, 3, 4, 5 };
int[] array2 = { 3, 4 };
int index = Array.IndexOf(array1, array2[0]); // 查找array2的第一个元素在array1中的位置
if(index >= 0 && array1.Length - index >= array2.Length) // 判断是否找到并且剩余的元素足够包含array2
{
bool found = true;
for(int i = 0; i < array2.Length; i++)
{
if(array1[index + i] != array2[i])
{
found = false;
break;
}
}
if(found)
{
// 找到了,返回起始位置
Console.WriteLine($"Found at position {index}");
}
else
{
// 没找到
Console.WriteLine("-1");
}
}
else
{
// 没找到
Console.WriteLine("-1");
}
这里先使用Array.IndexOf方法查找array2的第一个元素在array1中的位置,然后再逐个比较后续的元素,如果全部相等,则表示array2在array1中存在。要注意的是要判断剩余的元素数量是否足够包含array2,否则会出现下标越界异常。如果找到了,返回起始位置;如果没找到,返回-1。