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. Android 用LinkedList实现队列

    队列 队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作.进行插入操作的端称为队尾,进行删除操作的端称为队头.队列中没有元素时,称为空队列. 在 ...

  2. C++省略号类型和参数个数不确定函数参数范例

    声明:所有权利保留. 转载必须说明出处:http://blog.csdn.net/cartzhang/article/details/44203651 今天想写个宏定义,发现宏定义里也可以写不定参数, ...

  3. [React Native] Installing and Linking Modules with Native Code in React Native

    Learn to install JavaScript modules that include native code. Some React Native modules include nati ...

  4. 《Erlang程序设计》学习笔记-第1章 编译并运行程序

    http://blog.csdn.net/karl_max/article/details/3976372 1. erlang:halt()可以即刻停止系统运行. 2. q()命令可以完成文件和数据库 ...

  5. Linux修改windows中文本文件出现的^M

    换行符的Linux与windows文本文件是不一致的,需要通过 :%s/^M$//g 其中^M的输入使用ctrl+v+m 可以删除^M

  6. 二叉苹果树 - 二叉树树型DP

    传送门 中文题面: 题目描述 有一棵苹果树,如果树枝有分叉,一定是分 2 叉(就是说没有只有 1 个儿子的结点,这棵树共有N 个结点(叶子点或者树枝分叉点),编号为1-N,树根编号一定是1. 我们用一 ...

  7. java基本数据类型练习

    package javafirst;//包名 public class JavaFirstDay { //基本数据类型的练习 public static void main(String[] args ...

  8. mingw qt(可以去掉mingwm10.dll、libgcc_s_dw2-1.dll、libstdc++-6.dll的依赖,mingw默认都是动态链接gcc的库而TDM是静态链接gcc库,tdm版本更好用。用aspack压缩没有问题。qt本身不使用异常处理)good

    原文地址:mingw qt作者:孙1东 不使用Qt SDK,使用mingw编译qt源代码所遇问题及解决方法: configure -fast -release -no-exceptions -no-r ...

  9. Java native代码编译步骤简书

    Java native代码编译步骤简书 目的:防止java代码反编译获取密码算法 (1)编写实现类com.godlet.PasswordAuth.java (2)编译java代码javac Passw ...

  10. Maven打包不打test,Maven中-DskipTests和-Dmaven.test.skip=true的区别

    在使用mvn package进行编译.打包时,Maven会执行src/test/java中的JUnit测试用例, 有时为了跳过测试,会使用参数-DskipTests和-Dmaven.test.skip ...