Linq
Linq查寻
Any && All条件判断
bool res = master.Any((m) => {return m.Menpai.Equals("丐帮"); }); //在master中遍历m元素,m元素中只要有一个条件满足res结果就为True
bool ress = master.All ((m) => { return m.Menpai.Equals("丐帮"); });//在master中遍历m元素,而且所有m都满足条件res结果就为True
查询表达式关键字:
from:(表示从哪个集合做查寻)指定要查找的数据源以及范围变量,多个from子句则表示从多个数据源中查找数据
select: 指定查询要返回的目标数据,可以指定任何类型,甚至是匿名类型
where: 指定元素的筛选条件,多个where子句则表示了并列关系,必须全部都满足才能入选
orderby: 指定元素的排序字段和排序方式,当有多个排序字段时,有字段顺序确定主次关系,可以指定升序和降序两种排序方式
group: 指定元素的分组字段
join: 指定多个数据源的关联方式
var dd = from x in items where x > 100 select x;
//将items集合的每个原素放入x中,找出x>100(where是查寻的条件),将满足条件的元素返回.
var dd= items.Where<int>(x => { return x > 100; });
//使用Linq方法实现,func<int>(int ,bool) x>100满足条件返回int值,
List<int> items = new List<int>();
for (int i = 0; i < 200; i++)
{
items.Add(i);
}
var dd = from x in items where x > 100 select x;
foreach (var tt in dd)
{
listBox1.Items.Add(tt);
}//下以结果
查寻排序
var lmbdadd = from x in items
where x % 2 == 0
orderby x
select x; //将items集合每个元素放入x中,并找出条件被2整除的余数为0的元素,从小到大排序并返回去.
var dd = items.Where (x => x > 100).OrderByDescending(x=>x) ;//从大到小
Join 关联查寻
var res =from m in master//关联查寻
join k in kongfu on m.Kungfu equals(k.KongfuName)
where k.Lethality==100
select new {master = m,kongfu=k }; //遍历master中的每个原素m,关联到数据kongfu数据中和m.Kungfu属性一样的名字,条件为k.等级要为100,然后将两个原素返回
// into子句提供了一个临时标识符,它存储了into子句前面的查询内容,使它后面的子句可以方便的使用,对其进行再次查询,投影等操作。
var res = from k in kongfu
join m in master on k.KongfuName equals m.Kungfu into groups //将m.Kungfu分组
orderby groups.Count () descending //并将分组的数量从大到小排序
select new {kongfu = k, count = groups.Count()};
var res = from m in master
group m by m.Menpai //将元素m中的Mempai进行分组,
into g //然后将分组信息放在g中
select new { count = g.Count(), g.Key };//g.key中的key表示是按照哪个属性分组的
上一篇: Spring 发送邮件 HTML邮件