下面是用於測試這個實驗類的代碼:
static void Main(string[] args)
{
MyVec<int> a = new MyVec<int>();
a += 12;
a += 15;
a += 32;
MyVec<int> b = a.findAll(delegate(int x)
{
if (x < 20) return true; return false;
}
);
Console.WriteLine("vection original");
Console.WriteLine(a.ToString());
Console.WriteLine("vection found");
Console.WriteLine(b.ToString());
Console.ReadLine();
}
編譯,執行,程序輸出:
vection original
12,15,32
vection found
32
和我們預期的完全相同。很明顯的,List內部的算法與我們預期的基本相同。
Predicate<T>僅僅是為了仿照系統的實現而采用的一個委托,事實上可以使用自己定義的任何委托作為回調的函數體。
通過使用IEnumberable接口,可以實現對任意結構的遍歷,從而對任何數據結構定義強大的算法支持。