(28.218.290.1013.292.1025.84567.84919)

using System; class Delegates { //创建委托类型 public delegate bool NumberPredicate(int number); static void Main(string[] args) { Random rd = new Random(); int[] numbers = new int[15]; for (int i = 0; i < numbers.Length; i++) numbers[i] = rd.Next(1, 100); Console.WriteLine("原始数组:"); Array.ForEach(numbers, Console.WriteLine); //生成委托实例 NumberPredicate evenPredicate = IsEven; //随意选择一个参数,利用委托变量来判断该参数是否为偶数 Console.WriteLine("利用委托变量判断是否偶数: {0}", evenPredicate); //选出偶数 int[] evenNumbers = FilterArray(numbers, evenPredicate); //描述并输出 DisplayLis("numbers数组中的偶数有 : ", evenNumbers); //选出素数并输出 NumberPredicate evenPredicate1 = IsPrime; int[] primeNumbers = FilterArray(numbers, evenPredicate1); DisplayList("number数组中的素数有:", primeNumbers); Console.ReadKey(); } //选择满足predicate的数组元素 private static int[] FilterArray(int[] intArray, NumberPredicate predicate) {//由于还没学过动态数组的知识,需要做两个循环才能得到所需的数组 int j = 0; for (int i = 0; i < intArray.Length; i++) if (predicate(intArray[i])) j++; int[] abs = new int[j]; j = 0; for (int i = 0; i < intArray.Length; i++) if (predicate(intArray[i])) abs[j++] = intArray[i]; return abs; } //判断是否偶数 private static bool IsEven(int number) { return (number % 2 == 0); } //判断是否素数 private static bool IsPrime(int number) { bool T = true; for (int i = 2; i <= number / 2; i++) { if (number % i == 0) { T = false; } } if (number == 1) T = false; return T; } //打印descr iption,并输出数组元素 private static void DisplayList(string descr iption, int[] list) { Console.WriteLine(descr iption); foreach (int i in list) { Console.Write($"{i}\t"); } Console.WriteLine(); } }

group status

👤 group joined: 0 ⏳ group pending: 0 🚫 group blocked: 0

Sub Domains (0)