如题

解决方案 »

  1.   

    .net 3.5,可以通过静态方法扩展。
      

  2.   

    最常见的扩展方法是 LINQ 标准查询运算符,它们向现有的 System.Collections.IEnumerable 和 System.Collections.Generic.IEnumerable<(Of <(T>)>) 类型添加了查询功能。若要使用标准查询运算符,请首先通过 using System.Linq 指令将它们放到相应的范围中。然后,任何实现了 IEnumerable<(Of <(T>)>) 的类型看起来都具有 GroupBy、OrderBy、Average 等实例方法。在 IEnumerable<(Of <(T>)>) 类型的实例(如 List<(Of <(T>)>) 或 Array)后键入“点”时,可以在 IntelliSense 语句结束中看到这些附加方法。下面的示例演示如何对一个整数数组调用标准查询运算符 OrderBy 方法。括号里面的表达式是一个 lambda 表达式。很多标准查询运算符采用 lambda 表达式作为参数,但这不是扩展方法的必要条件。有关更多信息,请参见 Lambda 表达式(C# 编程指南)。class ExtensionMethods2    
    {    static void Main()
        {            
            int[] ints = { 10, 45, 15, 39, 21, 26 };
            var result = ints.OrderBy(g => g);
            foreach (var i in result)
            {
                System.Console.Write(i + " ");
            }           
        }        
    }
    //程序输出: 10 15 21 26 39 45
      

  3.   

    能不能举个例子说明一下这个WordCount怎么用?
      

  4.   

    以下程序需要用 C# 3.5 编译:
    using ExtensionMethods;class Program
    {
      static void Main()
      {
        int n = "I'm a student.".WordCount(); // 得到这个句子中的单词数
        System.Console.WriteLine(n);
      }
    }
    namespace ExtensionMethods
    {
      public static class MyExtensions
      {
        public static int WordCount(this String str)
        {
          return str.Split(new char[] { ' ', '.', '?' }, StringSplitOptions.RemoveEmptyEntries).Length;
        }
      }   
    }