该问题来自社区提问,应该用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(Arrayarray1,Arrayarray2)
{
// 比较类型是否一样
if ( ! Object.ReferenceEquals(array1.GetType(),array2.GetType()))
{
return false ;
}
// 比较长度是否一样
if (array1.GetLength( 0 ) != array2.GetLength( 0 ))
{
return false ;
}
// 比较成员是否对应相等
ValueTypev1,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 ;
}
}
}
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(Arrayarray1,Arrayarray2)
{
// 比较类型是否一样
if ( ! Object.ReferenceEquals(array1.GetType(),array2.GetType()))
{
return false ;
}
// 比较长度是否一样
if (array1.GetLength( 0 ) != array2.GetLength( 0 ))
{
return false ;
}
// 比较成员是否对应相等
ValueTypev1,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 ;
}
}
}