該問題來自社區提問,應該用Find方法查找而不是Contains
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication7
...{
class Program
...{
static void Main(string[] args)
...{
List<int[]> alSchedule = new List<int[]>();//聲明一個存放int[]元素的 集合
alSchedule.Add(new int[] ...{ 1, 2, 3 });
alSchedule.Add(new int[] ...{ 1, 2, 3, 4 });
int[] result = alSchedule.Find(FindElements);
if (result != null)
...{
Console.WriteLine(result);
}
Console.Read();
}
private static bool FindElements(int[] arrInt)
...{
return IsEquals(arrInt, new int[] ...{ 1, 2, 3 });
}
public static bool IsEquals(Array array1, Array array2)
...{
//比較類型是否一樣
if (!Object.ReferenceEquals(array1.GetType(), array2.GetType()))
...{
return false;
}
//比較長度是否一樣
if (array1.GetLength(0) != array2.GetLength(0))
...{
return false;
}
//比較成員是否對應相等
ValueType v1, v2;
for (int i = 0; i < array1.GetLength(0); i++)
...{
v1 = (ValueType)array1.GetValue(i);
v2 = (ValueType)array2.GetValue(i);
if (!v1.Equals(v2))
...{
return false;
}
}
return true;
}
}
}