linq学****笔记()——orderbyreverse() 1,LINQ(语言级集成查询)的意图是提供一种统一且对称的方式,让程序员在广义的数据上得到和操作数据。通过使用LINQ,我们能够在C#编程 语言内直接创建被称为查询表达式的实体。这些查询表达式是基于许多查询运算符的,而且有意设计成类似SQL表达式的,但它可以被用来与多种数据交互,而不 局限于关系数据库。具体来说,LINQ允许查询表达式以统一的方式来操作任何通过扩展方法直接或间接实现了 IEnumerable<T>接口的对象,关系数据库,Dataset或XML文档。 static void QueryOverString() { string[] Games = {"Morrowind", "BioShock", "Half Life 2", "The Darkness"};
// 建造一个查询表达式,来代表数组中多于6个字母的项。 IEnumerable<string> subSet = form g in Games where > 6 orderby g select g; // 输出结果 foreach (string s in subset) ("Item: {0}", s); } 2,LINQ表达式是强类型和可扩展的。在上面的例子中 subSet 的类型是确定的,即便我们是使用 var 来修饰它。LINQ表达式在我们迭代内容之前,不会真正进行运算,这个特性被叫做延迟执行,该特性的好处在于可以为相同的容器多次应用相同的LINQ查 询,而始终可以获得最新的最好的结果。如果要立即执行的话,可以调用由Enumerable类型定义的许多扩展方法来完成, 如:ToArray,ToDictionary,TKey以及ToList等扩展方法,它们允许我们以强类型容器来捕获LINQ查询结果。 3,LINQ的查询运算符是设计用于任何实现了IEnumerable<T>接口的类型的,无论是直接地还是通过扩展方法间接实现的。 ,<T>方法 来对包含在这些非泛型集合里的数据进行迭代操作。因为非泛型类型可以包含任何类型的项,所以我们还可以通过OfType<T>来过滤调与需要 迭代操作所指定类型不同的元素。 ArrayList strs = new ArrayList() {"one", "two", "three"};// 把ArrayList转换成一个兼容于IEnumerable<T>的类型 IEnumerable<string> strEnum = <string>();// 建立查询表达式 var longStr = from str in strs where > 2 select str; 4,上面的例子中查询运算符(如:from