2005-06-03 Zoltan Varga <vargaz@freemail.hu>
[mono.git] / mcs / tests / a-simple2.cs
1 using System;
2 using System.Collections;
3
4 delegate bool predicate (object a);
5
6 class X {
7
8         static int Main ()
9         {
10                 ArrayList a = new ArrayList ();
11                 for (int i = 0; i < 10; i++)
12                         a.Add (i);
13
14                 ArrayList even = Find (delegate (object arg) {
15                         return ((((int) arg) % 2) == 0);
16                 }, a);
17
18                 Console.WriteLine ("Even numbers");
19                 foreach (object r in even){
20                         Console.WriteLine (r);
21                 }
22                 if (even.Count != 5)
23                         return 1;
24                 if (((int)even [0]) != 0 ||
25                     ((int)even [1]) != 2 ||
26                     ((int)even [2]) != 4 ||
27                     ((int)even [3]) != 6 ||
28                     ((int)even [4]) != 8)
29                         return 2;
30                                 
31                 return 0;
32         }
33
34         static ArrayList Find (predicate p, ArrayList source)
35         {
36                 ArrayList result = new ArrayList ();
37
38                 foreach (object a in source){
39                         if (p (a))
40                                 result.Add (a);
41                 }
42
43                 return result;
44         }
45 }