<p>基本查询操作符-获取数据
Select()
public static IEnumerable<TResult> Select<TSource, TResult> (
this IEnumerable<TSource> source,
Func<TSource, TResult> selector )
说明
Select 方法本身是一个泛型扩展方法
它作用于IEnumerable<TSource>类型
它只接受一个 Func<TSource, TResult> 类型参数
Func<TSource, TResult> 是一个泛型委托,位于System名字空间下,System.Core.dll中
在这里 selector 是一个提取器</p><div style="page-break-after: always;"><span style="display: none;"><!--more-->& nbsp ;</span></div><p>基本查询操作符-过滤数据
Where()
public static IEnumerable<TSource> Where<TSource>(
this IEnumerable<TSource> source,
Func<TSource, bool> predicate )
说明
Where方法也是一个泛型扩展方法
它和 Select() 一样作用于IEnumerable<TSource>类型
它只接受一个 Func<TSource, bool> 泛型委托参数
在这里 predicate 是一个判断条件</p><p>基本查询操作符-排序数据
public static IOrderedEnumerable<TSource> OrderBy<TSource, TKey>(     this IEnumerable<TSource> source,
Func<TSource, TKey> keySelector )
说明
OrderBy方法也是一个泛型扩展方法
它和 Select() 一样作用于IEnumerable<TSource>类型
它只接受一个 Func<TSource, TKey > 类型参数
在这里 keySelector 指定要排序的字段
如果想降序排列可以使用OrderByDescending方法
示例代码如下</p><p>/// <summary>
/// 传统查询方式
/// </summary>
private void WithoutLinq()
{
int[] numbers = new int[] { 6, 4, 3, 2, 9, 1, 7, 8, 5 };</p><p>List<int> even = new List<int>();</p><p>foreach (int number in numbers)
{
if (number % 2 == 0)
{
even.Add(number);
}
}</p><p>even.Sort();
even.Reverse();</p><p>Console.WriteLine(“传统查询方式“);
foreach (int number in even)
{
Console.WriteLine(number.ToString());
}</p><p>}</p><p>/// <summary>
/// LINQ 查询方式
/// </summary>
private void WithLinq()
{
int[] numbers = new int[] { 6, 4, 3, 2, 9, 1, 7, 8, 5 };</p><p>var even = numbers
.Where(p => p % 2 == 0)
.Select(p => p)
.OrderByDescending(p => p);</p><p>Console.WriteLine(“LINQ 查询方式“);
foreach (var item in even)
{
Console.WriteLine(item.ToString());
}</p><p>}</p>