wywmain 2015-03-25 09:01 采纳率: 100%
浏览 1489
已采纳

visual studio2008扩展类的方法

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication2
{
class Delegates
{
public delegate bool NumPredicate(int num);
public static void Main()
{
int[] number = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
NumPredicate evenPredicate = IsEven;
Console.WriteLine("Call Iseven using a delegatevariable:{0}", evenPredicate(4));
List evenNumbers = FilterArray(number, evenPredicate);
DisplayList("Use IsEven to filter even numbers", evenNumbers);
List oddNumbers = FilterArray(number, IsOdd);
DisplayList("Use IsOdd to filter odd numbers:", oddNumbers);
List NumberOver5 = FilterArray(number, IsOver5);
DisplayList("Use IsOver5 to filter numbers over5:", NumberOver5);

    }                           //end Main method
    private static List<int> FilterArray(int[] intAr, NumPredicate pred)
    {
        List<int> result = new List<int>();
        foreach (int item in intAr)
            if (pred(item))
                result.Add(item);
        return result;
    }                   // end method FilterArray
    private static bool IsOdd(int number)
    { return (number % 2 == 1); }   // end method IsOdd
    private static bool IsEven(int number)
    { return (number % 2 == 0); }   // end method IsEven
    private static bool IsOver5(int number)
    { return (number > 5); }        // end method IsOver5

    private static void DisplayList(string descript, List<int> list)
    {
        Console.Write(descript);
        foreach (int item in list)
            Console.Write("{0} ", item);
        Console.WriteLine();
        Console.Read();
    }

}
public static class NumExtensions
{
   public static void (this delegate adelegate);
}

}

要求:在该类原来具有的判断数组中的元素是奇数、偶数、大于5的数的基础上,不改变原来类的定义,而采取扩展类的方法,增加一个判断小于5的数的方法IsUnder5( ),然后对指定数组分别调用4个方法挑选出奇数子集、偶数子集、大于5的数的子集和小于5的数的子集并分别显示结果。

  • 写回答

1条回答 默认 最新

  • threenewbee 2015-03-25 13:17
    关注
     static class NumExtensions
    {
       public static int[] getodd(this IEnumerable<int> data)
         {
             return data.Where(x => x % 2 != 0).ToList()
         }
         //其余代码以此类推,如果需要完整代码,请先采纳本答案
    }
    
    使用
            foreach (int item in list.getodd())
                Console.Write("{0} ", item);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 想通过pywinauto自动电机应用程序按钮,但是找不到应用程序按钮信息
  • ¥15 MATLAB中streamslice问题
  • ¥15 如何在炒股软件中,爬到我想看的日k线
  • ¥15 51单片机中C语言怎么做到下面类似的功能的函数(相关搜索:c语言)
  • ¥15 seatunnel 怎么配置Elasticsearch
  • ¥15 PSCAD安装问题 ERROR: Visual Studio 2013, 2015, 2017 or 2019 is not found in the system.
  • ¥15 (标签-MATLAB|关键词-多址)
  • ¥15 关于#MATLAB#的问题,如何解决?(相关搜索:信噪比,系统容量)
  • ¥500 52810做蓝牙接受端
  • ¥15 基于PLC的三轴机械手程序