对于LINQ这种表达式非常深,这里看了官方文档的实例以后,自己跟着敲了敲,整理一下以后可能会很常用的子句。
所有 LINQ 查询操作都由以下三个不同的操作组成:
- 获取数据源。
- 创建查询。
- 执行查询。
查询在 foreach 语句中执行,因此,foreach 需要 IEnumerable 或 IEnumerable< T> 。支持 IEnumerable< T> 或派生接口(如泛型 IQueryable< T> )的类型称为可查询类型。
复合 From 字句
比如要访问每个Student元素的内部列表,可以使用复合from子句。类似于使用嵌套的foreach语句。可以向任一from子句中添加where
或orderby子句筛选结果。
[TestClass]
public class UnitTest1
{
[TestMethod]
public void TestMethod1()
{
List<Student> students = new List<Student>
{
new Student {
LastName="Omelchenko", Scores= new List<int> {
97, 72, 81, 60}},
new Student {
LastName="O'Donnell", Scores= new List<int> {
75, 84, 91, 39}},
new Student {
LastName="Mortensen", Scores= new List<int> {
88, 94, 65, 85}},
new Student {
LastName="Garcia", Scores= new List<int> {
97, 89, 85, 82}},
new Student {
LastName="Beebe", Scores= new List<int> {
35, 72, 91, 70}}
};
var scoreQuery = from student in students
from sorce in student.Scores
where sorce > 90
select student;
foreach (var stu in scoreQuery)
{
Console.WriteLine(stu.LastName+" "+stu.Scores);
}
}
}
public class Student
{
public