LINQ查询表达式---------select子句

1.1常见的select子句查询

class Program
{
public class PerInfo
{
public int Id
{
get;
set;
}
public string Name
{
get;
set;
}
public int Age
{
get;
set;
}
public List<int> Scores
{
get;
set;
}
} List<PerInfo> PerInfos = new List<PerInfo>()
{
new PerInfo
{
Id = , Name = "小白", Age = , Scores = new List<int>()
{
, , ,
}
},
new PerInfo
{
Id = , Name = "小日", Age = , Scores = new List<int>()
{
, , ,
}
},
new PerInfo
{
Id = , Name = "小月", Age = , Scores = new List<int>()
{
, , ,
}
},
new PerInfo
{
Id = , Name = "小明", Age = , Scores = new List<int>()
{
, , ,
}
}
}; static void Main(string[] args)
{
Program p = new Program();
var query = from q in p.PerInfos
select q;
foreach (PerInfo per in query)
{
Console.WriteLine("姓名:{0},年龄:{1}", per.Name, per.Age);
} Console.ReadLine();
}
}
输出结果:
姓名:小白,年龄:15
姓名:小日,年龄:18
姓名:小月,年龄:21
姓名:小明,年龄:19

 

1.2 其他形式的select查询

class Program
{
public class PerInfo
{
public int Id
{
get;
set;
}
public string Name
{
get;
set;
}
public int Age
{
get;
set;
}
public List<int> Scores
{
get;
set;
} public CustrInfo GetCustrInfo(List<CustrInfo> p, int id)
{
CustrInfo cInfo = (from q in p
where q.Id == id
select q).FirstOrDefault(); return cInfo;
} public override string ToString()
{
return "姓名:" + Name + " 年龄:" + Age;
}
} public class CustrInfo
{
public int Id
{
get;
set;
}
public string Tel
{
get;
set;
}
public string Email
{
get;
set;
}
public override string ToString()
{
return "邮箱:" + Email + "电话:" + Tel;
}
} public class ScoreInfo
{
public double Average
{
get;
set;
}
public int ID
{
get;
set;
}
} static void Main(string[] args)
{
List<PerInfo> perInfos = new List<PerInfo>()
{
new PerInfo
{
Id = , Name = "小白", Age = , Scores = new List<int>()
{
, , ,
}
},
new PerInfo
{
Id = , Name = "小日", Age = , Scores = new List<int>()
{
, , ,
}
},
new PerInfo
{
Id = , Name = "小月", Age = , Scores = new List<int>()
{
, , ,
}
},
new PerInfo
{
Id = , Name = "小明", Age = , Scores = new List<int>()
{
, , ,
}
}
}; List<CustrInfo> custrInfos = new List<CustrInfo>()
{
new CustrInfo {Id = , Tel = "", Email = "Xuahau@123.Com"},
new CustrInfo {Id = , Tel = "", Email = "xchads@qq.Com"},
new CustrInfo {Id = , Tel = "", Email = "kashda@q56.Com"},
new CustrInfo {Id = , Tel = "", Email = "sadhkuu@143.Com"}
}; Program p = new Program(); //1 根据查询条件查询数据源
var query1 = from q in perInfos
where q.Id >
select q; Console.WriteLine("Query1:");
foreach (PerInfo per in query1)
{
Console.WriteLine(per.ToString());
} //2 查询单个属性
var query2 = from q in perInfos
where q.Id >
select q.Name; Console.WriteLine("\nQuery2:");
foreach (string s in query2)
{
Console.WriteLine(s);
} //3 查询一个经过筛选的对象
var query3 = from q in perInfos
where q.Id >
select q.GetCustrInfo(custrInfos, q.Id); Console.WriteLine("\nQuery3:");
foreach (CustrInfo c in query3)
{
Console.WriteLine(c.ToString());
} //4 查询内部数组
var query4 = from q in perInfos
where q.Id >
select q.Scores[]; Console.WriteLine("\nQuery4:");
foreach (int i in query4)
{
Console.WriteLine(i);
} //5 表达式
var query5 = from q in perInfos
where q.Id >
select q.Scores[] * 1.1; Console.WriteLine("\nQuery5:");
foreach (int i in query5)
{
Console.WriteLine(i);
} //6 求平均数
var query6 = from q in perInfos
where q.Id >
select q.Scores.Average(); Console.WriteLine("\nQuery6:");
foreach (int i in query6)
{
Console.WriteLine(i);
} //7 查询多个属性
var query7 = from q in perInfos
where q.Id >
select new
{
q.Name, q.Age
}; Console.WriteLine("\nQuery7:");
foreach (var item in query7)
{
Console.WriteLine(item.Name + " " + item.Age);
} //8 对查询结果进行投影
var query8 = from q in perInfos
where q.Id >
select new ScoreInfo
{
ID = q.Id,
Average = q.Scores.Average()
}; Console.WriteLine("\nQuery8:");
foreach (var item in query8)
{
Console.WriteLine("{0},{1}", item.ID, item.Average);
} //9 查询平均分大于85的联系人信息
var query9 = from q in perInfos
where q.Scores.Average() >
join ci in custrInfos on q.Id equals ci.Id
select ci; Console.WriteLine("\nQuery9:");
foreach (var item in query9)
{
Console.WriteLine("{0} {1} {2}", item.Id, item.Email, item.Tel);
} Console.ReadLine();
}
}
输出结果:
Query1:
姓名:小日 年龄:18
姓名:小月 年龄:21
姓名:小明 年龄:19 Query2:
小日
小月
小明 Query3:
邮箱:xchads@qq.Com电话:120
邮箱:kashda@q56.Com电话:119
邮箱:sadhkuu@143.Com电话:999 Query4:
98
95
96 Query5:
107
104
105 Query6:
90
95
97 Query7:
小日 18
小月 21
小明 19 Query8:
2,90.5
3,95.75
4,97.5 Query9:
2 xchads@qq.Com 120
3 kashda@q56.Com 119
4 sadhkuu@143.Com 999

  

LINQ查询表达式---------select子句的更多相关文章

  1. LINQ查询表达式---------let子句

    LINQ查询表达式---------let子句 let子句创建一个范围变量来存储结果,变量被创建后,不能修改或把其他表达式的结果重新赋值给它.此范围变量可以再后续的LINQ子句中使用. class P ...

  2. LINQ查询表达式---------join子句

    LINQ查询表达式---------join子句 join 子句接受两个源序列作为输入. 每个序列中的元素都必须是可以与另一个序列中的相应属性进行比较的属性,或者包含一个这样的属性. join子句使用 ...

  3. LINQ查询表达式---------orderby子句

    LINQ查询表达式---------orderby子句 LINQ可以按元素的一个或多个属性对元素进行排序. class Program { public class PerInfo { public ...

  4. LINQ查询表达式---------group子句

    LINQ查询表达式---------group子句 LINQ表达式必须以from子句开头,以select或group子句结束.使用guoup子句来返回元素分组后的结果.group 子句返回一个 IGr ...

  5. LINQ查询表达式---------where子句

    LINQ查询表达式---------where子句 where 子句用在查询表达式中,用于指定将在查询表达式中返回数据源中的哪些元素. 它将一个布尔条件(“谓词”)应用于每个源元素(由范围变量引用), ...

  6. LINQ查询表达式---------from子句

    LINQ查询表达式---------from子句 LINQ的查询由3基本部分组成:获取数据源,创建查询,执行查询. //1.获取数据源 List<, , , , , }; //创建查询 var ...

  7. 2.3 LINQ查询表达式中 使用select子句 指定目标数据

    本篇讲解LINQ查询的三种形式: 查询对象 自定义查询对象某个属性 查询匿名类型结果 [1.查询结果返回集合元素] 在LINQ查询中,select子句和from子句都是必备子句.LINQ查询表达式必须 ...

  8. LINQ查询表达式---------into

    LINQ查询表达式---------into into 上下文关键字创建一个临时标识符,以便将 group.join 或 select 子句的结果存储到新的标识符 class Program { pu ...

  9. LINQ查询表达式(1) - 查询表达式基础

    LINQ包括五个部分:LINQto Objects.LINQ to DataSets.LINQ to SQL.LINQ to Entities.LINQ to XML. 什么是查询?它有什么用途? “ ...

随机推荐

  1. 避免if语句的深层次嵌套

    公司做了个抢红包的限制,然后ajax请求的返回字段,要进行多层逻辑的判断,想想是真恶心,虽然都是简单逻辑,而且看别人以前写的代码,发现,哎,注释能不能写上吶,像我写代码都是细致到,哪怕初学者也能看懂这 ...

  2. MongoDB Shell 经常使用操作

    数组查询 数组查询 MongoDB 中有子文档的概念.一个文档中能方便的嵌入子文档,这与关系性数据库有着明显的不同,在查询时,语法有一些注意点. 样例代码,假如我们的一个集合(tests)中存在标签键 ...

  3. erlang tcp发包速度测试

    http://blog.sina.com.cn/s/blog_96b8a1540101317m.html 这段时间我们的项目遇到广播包的一些性能问题,想起之前看到yufeng老大提到的1s广播40K包 ...

  4. Azure 与 AI

    微软 Build 2017 开发者大会:Azure 与 AI 的快速发展   欢迎大家持续关注葡萄城控件技术团队博客,更多更好的原创文章尽在这里~~ 一年一度的微软 Build 大会准时起航,本年度大 ...

  5. cordova-plugin-file-transfer 监听到下载成功,找不到文件 - 简书

    原文:cordova-plugin-file-transfer 监听到下载成功,找不到文件 - 简书 下载成功后找不到下载文件 function download(fileEntry, uri) { ...

  6. win10下安装docker步骤(一)

    一.启用Hyper-V 打开控制面板 - 程序和功能 - 启用或关闭Windows功能,勾选Hyper-V,然后点击确定即可,如图: 请注意电脑默认的Hyper-V虚拟机监控程序是不能进行勾选的,需要 ...

  7. android studio中文乱码各种情况的解决办法

    情况一:编辑器内的中文注释乱码. 解决办法:在界面的右下角找到 UTF-8 ,单击之,在弹出的列表中选中GBK 在弹出框内选中Reload 总结:导致这样的原因是你这个.java文件本身是GBK编码的 ...

  8. 利用WPF建立自己的3d gis软件(非axhost方式)(九)SDK自带部分面板的调用

    原文:利用WPF建立自己的3d gis软件(非axhost方式)(九)SDK自带部分面板的调用 先下载SDK:https://pan.baidu.com/s/1M9kBS6ouUwLfrt0zV0bP ...

  9. this解析

    定时器中的this function Aaa() { var _this = this; //解决关键 this.a = 12; //但凡被定时器调的函数,this必然是window,所以,show里 ...

  10. Android之高仿手机QQ聊天

    源代码下载 转载请注明出处,谢谢! 最终版已上传.优化下拉刷新.增加来消息声音提示.主界面改成ViewPager,实现左右滑动.新增群组.最近会话显示条数,开始上班了,不再修改了.谢谢! 国庆这几天, ...