Advertisement
Guest User

ex31tp9

a guest
Nov 26th, 2014
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.64 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. namespace ex31
  5. {
  6.         public delegate bool IntPredicate<T>(T x) ;
  7.         public delegate void IntAction<T>(T x);
  8.        
  9.         class IntList<T>: List<T> {
  10.        
  11.         public IntList (params T[] elements) : base(elements) {}
  12.        
  13.             public void Act(IntAction<T> f){
  14.             foreach(T i in this)
  15.                     f(i);
  16.             }
  17.             public IntList<T> Filter(IntPredicate<T> p){
  18.             IntList<T> res = new IntList<T>();
  19.             foreach (T i in this)
  20.                     if (p(i)) res.Add(i);
  21.                 return res;
  22.             }
  23.        
  24.         }
  25.    
  26.             class Test
  27.     {
  28.         public static void Main (string[] args)
  29.         {
  30.             Console.WriteLine ("exercice31");
  31.         int[] arr = {12,26,33,2};
  32.         IntList<int> xs = new IntList<int>(arr);   
  33.             // question2
  34.             //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
  35.             xs.Act(Console.WriteLine);
  36.             Console.WriteLine("=== Question 2 explication ====");
  37.             //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 :)))
  38.             xs.Filter(x => x%2 == 0).Act(Console.WriteLine);
  39.             // question 3 afficher seulement ce qui >25
  40.             Console.WriteLine("=== affichage si > 25 ====");
  41.             xs.Filter(x => x>25 == true).Act(Console.WriteLine);
  42.             // somme des elements xs
  43.             Console.WriteLine("=== La somme: ====");
  44.             int s = 0 ;
  45.             xs.Act(x => s += x);
  46.             Console.WriteLine(s);
  47.             // question5
  48.             String[] sArr = {"Akram", "ISIFAR","TABKA"};
  49.             IntList<String> xs1 = new IntList<String>(sArr);   
  50.             xs1.Act(Console.WriteLine);
  51.            
  52.         }
  53.     }
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement