Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- namespace ex31
- {
- public delegate bool IntPredicate<T>(T x) ;
- public delegate void IntAction<T>(T x);
- class IntList<T>: List<T> {
- public IntList (params T[] elements) : base(elements) {}
- public void Act(IntAction<T> f){
- foreach(T i in this)
- f(i);
- }
- public IntList<T> Filter(IntPredicate<T> p){
- IntList<T> res = new IntList<T>();
- foreach (T i in this)
- if (p(i)) res.Add(i);
- return res;
- }
- }
- class Test
- {
- public static void Main (string[] args)
- {
- Console.WriteLine ("exercice31");
- int[] arr = {12,26,33,2};
- IntList<int> xs = new IntList<int>(arr);
- // question2
- //la fonction suivante permet d'affecter un argument "Console.WriteLine" au délégué "IntAction" la fonction "Act" pour pouvoir affichzer toutes les elements de la liste
- xs.Act(Console.WriteLine);
- Console.WriteLine("=== Question 2 explication ====");
- //la fonction suivante permet d'affecter un argument (ici fonction anonyme) au délégué "IntPredicate" pour définir un filtre sur les elements positives puis afficher :)))
- xs.Filter(x => x%2 == 0).Act(Console.WriteLine);
- // question 3 afficher seulement ce qui >25
- Console.WriteLine("=== affichage si > 25 ====");
- xs.Filter(x => x>25 == true).Act(Console.WriteLine);
- // somme des elements xs
- Console.WriteLine("=== La somme: ====");
- int s = 0 ;
- xs.Act(x => s += x);
- Console.WriteLine(s);
- // question5
- String[] sArr = {"Akram", "ISIFAR","TABKA"};
- IntList<String> xs1 = new IntList<String>(sArr);
- xs1.Act(Console.WriteLine);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement