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的数的子集并分别显示结果。

 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);