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. L脚本语言实现文件加解密

    L脚本语言中能够对内存对象进行AES加解密.我们能够非常easy地实现文件加解密 #scp #定义一个秘钥字符串 定义:字符串,str1,abcdefg 打开:文件,file1,c:\1.txt 打开 ...

  2. java读取.properties文件乱码

    1.config.properties文件写不进中文,写进去都变成了unicode,解决的方法是右键该文件--Properties--Resource--Text file encoding ,选ot ...

  3. 【hdu 2376】Average distance

    [题目链接]:http://acm.hdu.edu.cn/showproblem.php?pid=2376 [题意] 让你计算树上任意两点之间的距离的和. [题解] 算出每条边的两端有多少个节点设为n ...

  4. C#依赖注入控制反转IOC实现详解

    原文:C#依赖注入控制反转IOC实现详解 IOC的基本概念是:不创建对象,但是描述创建它们的方式.在代码中不直接与对象和服务连接,但在配置文件中描述哪一个组件需要哪一项服务.容器负责将这些联系在一起. ...

  5. 让delphi2010操作界面回到delphi7模式

    让delphi2010操作界面回到delphi7模式 在使用delphi2010的过程中,很不习惯它的窗口在一个框框内,感觉很不方便,可能是因为使用delphi7很多年了,已经习惯了delphi7的版 ...

  6. 将memo转化为JPG输出,使用Memo1.PaintTo(Bitmap.Canvas)

    unit unit1; interface uses  Windows, Messages, SysUtils, Graphics, Controls, Forms, StdCtrls,  Class ...

  7. 用Ruby实现的论坛灌水工具:CC98 Post Machine

    介绍 ZJU 的校网论坛 CC98 比较活跃.论坛只对校内网开放,而且账号跟学生绑定,每个学生注册的账号数量有限.『十大』是 CC98 的经典页面:基于关注的人数(回帖的用户数而不是回帖的数量)用算法 ...

  8. 【从翻译mos文章】采用高速全扫描索引(index ffs) 为了避免全表扫描

    采用高速全扫描索引(index ffs) 为了避免全表扫描 参考原始: Index Fast Full Scan Usage To Avoid Full Table Scans (Doc ID 701 ...

  9. 概率图模型(PGM) —— 贝叶斯网络(Bayesian Network)

    概率图模型是图论与概率方法的结合产物.Probabilistic graphical models are a joint probability distribution defined over ...

  10. robot framework的使用说明

    robot framework安装说明1.安装python2.7.15运行安装包python-2.7.15.amd64.msi 2.robot framework(1)解压最新的压缩包如robotfr ...