代码如下: class Program
{
static void Main(string[] args)
{
byte[] bytes = new byte[] { 1, 2, 3, 4 };
foreach (byte b in bytes.Skip(1))
{
Console.WriteLine(b.ToString());
}
Console.Read();
}
}
查看Skip方法,该方法居然属于System.Linq.Enumeralbe类,描述中说:
// Summary:
// Provides a set of static (Shared in Visual Basic) methods for querying objects
// that implement System.Collections.Generic.IEnumerable<T>.把byte[]数组换成List<byte>,同样可以使用Skip()方法,但Skip方法既不属于List<T>类,也不于其基类,请问谁知道这是什么原理呢?先谢谢了!
public static IEnumerable<TSource> Skip<TSource>(
this IEnumerable<TSource> source,
int count
)
{
public static bool SequenceEqual<T>(this ICollection<T> first,
ICollection<T> second)
{
if (second.Count != first.Count)
return false;
return Enumerable.SequenceEqual(first, second);
} public static bool SequenceEqual<T>(this IEnumerable<T> first,
IEnumerable<T> second)
{
ICollection<T> list1 = first as ICollection<T>;
ICollection<T> list2 = second as ICollection<T>;
if (list1 != null && list2 != null)
return SequenceEqual(list1, list2);
return Enumerable.SequenceEqual<T>(first, second);
}
}