开发工具与关键技术:linq查询和MVC开发工具
作者:郑健鹏
撰写时间:2019年5月1日
摘要:本文介绍Linq查询基本操作(查询关键字)
- from 子句
- where 子句
- select子句
- group 子句
- into 子句
- orderby 子句
- join 子句
- let 子句
- 复合from子句
- 在某些情况下,源序列中的每个元素本身可能是序列(集合),也可能包含序列
- 用语访问单个数据库中的内部集合
- 使用多个from字句执行连接
- 可以包含多个可从独立数据源生成补充查询的from字句
复合(顾名思义就是有多from的字句)实例:
class Program
{
static void Main(string[] args)
{
List<Student> students = new List<Student>
{
new Student
{
LastName="xiaogui",Scores=new List<int>{97,42,91,60}},
new Student
{
LastName="xiaozhan",Scores=new List<int>{50,92,81,60}},
new Student
{
LastName="xiaolan",Scores=new List<int>{32,32,81,90}},
new Student
{
LastName="xiaowan",Scores=new List<int>{92,22,81,60}},
};
var query = from stuent in students
from score in stuent.Scores
where score > 90
select new
{
Last = stuent.LastName,
score
};
foreach (var student in query)//大于90分的显示出来
{
Console.WriteLine("{0} Score:{1}", student.Last, student.score);
}
Console.ReadLine();
}
}
public class Student
{
public string LastName { get; set; }
public List<int> Scores { get; set; }
}
public class Employee
{
public string First { get; set; }
public string Last { get; set; }
public int ID { get; set; }
}
执行结果: xiaogui Score:97
xiaogui Score:91
xiaozhan Score:92
xiaowan Score:92
let 关键字(使用let字句扩展范围变量)
-
创建一个可以查询自身的可枚举类型
-
使查询只能对范围变量word调用一次ToLower。
如果不使用let,则必须在where字句的每个谓词中调用ToLower
例:把每个单词开头包含a或者e的找出来
using System;
using System.Linq;
public class Test
{
static void Main(string[] args)
{
string[] strings = { "A penny saved is a penny earned.", "The aaxly sdj", "the pa is no" };
var query = from sentence in strings
let words = sentence.Split(' ')//用空格分割成数组
from word in words
let w = word.ToLower()//把每个字母小写
where w[0] == 'a' || w[0] == 'e'
select word;
foreach (var s in query)
{
Console.WriteLine(s);
}
Console.ReadLine();
}
}
where 关键字 (筛选)
- 一个查询表达式可以包含多个where字句
例:(把包含a的找出来)
using System;
using System.Linq;
public class Test
{
static void Main(string[] args)
{
string[] str = { "a", "b", "c" };
var query = from s in str
where s == "a"
select s;
foreach (var s in query)
{
Console.WriteLine(s);
}
Console.ReadLine();
}
}
orderby 关键字 (排序)
-
在查询表达式中,orderby字句可以使返回的序列(组)按升序或降序。
-
可以指定多个键,以便执行一个或多个次要排序操作
-
默认排序顺序为升序
-
编译时,orderby字句被转换为对OrderBy方法的调用。orderby字句中的多个键被转换为ThenBy方法调用
ascending 升序
升序
using System;
using System.Linq;
public class Test
{
static void Main(string[] args)
{
string[] str = { "a", "b", "c" };
var query = from s in str
orderby s ascending
select s;
}
}
结果为: a b c
今天的文章Linq查询分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/61824.html