什么是查询?它有什么用途?
“查询”是指一组指令,这些指令描述要从一个或多个给定数据源检索的数据以及返回的数据应该使用的格式和组织形式。 查询不同于它所产生的结果。
通常,源数据会在逻辑上组织为相同种类的元素序列。 SQL 数据库表包含一个行序列。 与此类似,ADO.NET DataTable 包含一个 DataRow 对象序列。 在 XML 文件中,有一个 XML 元素“序列”(不过这些元素按分层形式组织为树结构)。 内存中的集合包含一个对象序列。
从应用程序的角度来看,原始源数据的具体类型和结构并不重要。 应用程序始终将源数据视为一个 IEnumerable<T> 或 IQueryable<T> 集合。 在 LINQ to XML 中,源数据显示为一个 IEnumerable<XElement>。 在 LINQ to DataSet 中,它是一个 IEnumerable<DataRow>。 在 LINQ to SQL 中,它是您定义用来表示 SQL 表中数据的任何自定义对象的 IEnumerable 或 IQueryable。
查询结果:
检索元素子集,产生新的序列,不修改单个元素,可以对其进行分组、排序
IEnumerable<int> highScoresQuery = from score in scores where score > 80 orderby score descending select score;
检索元素子集,转换元素类型
IEnumerable<string> highScoresQuery2 = from score in scores where score > 80 orderby score descending select String.Format("The score is {0}", score);
检索有关源数据的单一值
int highScoreCount = (from score in scores where score > 80 select score) .Count(); -or- IEnumerable<int> highScoresQuery3 = from score in scores where score > 80 select score; int scoreCount = highScoresQuery3.Count();
参考
[1] MSDN,LINQ查询表达式
时间: 2024-11-13 17:02:13