.NET中的Linq

  在.net中,任何实现了System.Collection.Generic.IEnumerable<T>接口的数据结构都可以使用定义在System.Linq命名空间下面的扩展方法。也就是说,Linq是通过扩展方法对IEnumerable<T>接口的扩展实现。

  另外,System.Linq命名空间是在下面的程序集中:

.NET中的Linq

  对于下面的示例代码:

List<string> series = new List<string>(){"One", "Two", "Three"};

  可以使用Where方法去过滤列表,或者是使用Select去投影结果。因为List<T>类型实现了IEnumerable<T>,针对Linq的扩展方法即扩展的这个接口。例如Where扩展方法的定义如下:

public static IEnumerable<TSource> Where<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate)

  再比如,定义在System.Linq.Enumerable这个静态类下面的扩展方法

public static bool Contains<TSource>(this IEnumerable<TSource> source,TSource value){}

public static int Count<TSource>(this IEnumerable<TSource> source){}

public static IEnumerable<TSource> Distinct<TSource>(this IEnumerable<TSource> source,IEqualityComparer<TSource> comparer){}

/* and many more */

 

 

你可能感兴趣的:(.net)