.NET基础学习(LINQ)(3)
34 join c in studentInCourses on s.StID equals c.StID
35 where c.CourseName == "History"
36 select s.LastName;
37 foreach (var v in query1) Console.Write("{0}\t", v);运行结果:
查询主体中的from...let...where片段
可选的from...let...where部分是查询主体的第一部分,可以由任意数量的3个子句来组合--from子句、let子句和where子句。
1、from子句
查询表达式必须从from子句开始,后面跟的是查询主体。主体本身可以从任何数量的其他from子句开始,每一个from子句都指定了一个额外的数据源集合并引入了要在之后运算的迭代变量,所有from子句的语法和含义都是一样的。
示例代码如下:
1 var someInts = from a in Enumerable.Range(1, 5) //必须的第一个from子句
2 from b in Enumerable.Range(6, 5) //查询主体的第一个子句
3 where a < 3 && b < 10
4 select new { a, b, sum = a + b }; //匿名类型对象
5 foreach (var v in someInts) Console.WriteLine(v);消除行号
2、let子句 www.2cto.com
let子句接受一个表达式的运算并把它赋值给一个需要在其他运算中使用的标示符。
示例代码如下:
1 var someInts = from a in Enumerable.Range(1, 5)
2 from b in Enumerable.Range(6, 5)
3 let sum = a + b //在新的变量中保存结果
4 where sum == 12
5 select new { a, b, sum };
6 foreach (var v in someInts) Console.WriteLine(v);运行结果:
3、where子句
where子句根据之后的运算来去除不符合指定条件的项。
示例代码如下:
1 var someInts = from a in Enumerable.Range(1, 5)
2 from b in Enumerable.Range(6, 5)
3 let sum = a + b
4 where sum > 12 //条件一
相关新闻>>
- 发表评论
-
- 最新评论 更多>>