LINQ to SQL的Select

和SQL命令中的select作用相似但位置不同,查询表达式中的select及所接子句是放在表达式最后并把子句中的变量也就是结果返回回来。
一个员工安排到一辆车上,一辆车可以有很多员工,车牌号和员工号是一对多的关系。
员工类

public class Employee
{
       /// <summary>
       /// 车牌号
       /// </summary>
       public int CarNo { get; set; }

       /// <summary>
       /// 员工号
       /// </summary>
       public string EmployeeNo { get; set; }

       /// <summary>
       /// 描述
       /// </summary>
       public string Description { get; set; }

       /// <summary>
       /// 年龄
       /// </summary>
       public int Age { get; set; }
}

获取员工数据方法

public static List<Employee> GetList()
{
        return new List<Employee>()
        {
                 new Employee(){ CarNo=1,EmployeeNo="NO-1",Description ="广州分公司",Age=21},
                 new Employee(){ CarNo=2,EmployeeNo="NO-2",Description ="惠州分公司",Age=30},
                 new Employee(){ CarNo=3,EmployeeNo="NO-3",Description ="东莞分公司",Age=27},
                 new Employee(){ CarNo=4,EmployeeNo="NO-4",Description ="广州分公司",Age=28},
                 new Employee(){ CarNo=3,EmployeeNo="NO-4",Description ="东莞分公司",Age=52},
                 new Employee(){ CarNo=1,EmployeeNo="NO-5",Description ="深圳分公司",Age=18},
                 new Employee(){ CarNo=1,EmployeeNo="NO-6",Description ="中山分公司",Age=21},
                 new Employee(){ CarNo=2,EmployeeNo="NO-7",Description ="广州分公司",Age=31},
                 new Employee(){ CarNo=5,EmployeeNo="NO-8",Description ="佛山分公司",Age=19},
                 new Employee(){ CarNo=6,EmployeeNo="NO-9",Description ="深圳分公司",Age=20}
        };
}

只要得到所有员工的年龄

var employeeList = Employee.GetList();
var list = employeeList.Select(x => x.Age);
StringBuilder sb = new StringBuilder();
foreach (var item in list)
{
     sb.AppendFormat("年龄:{0}<br/> ", item);
}

输出结果

年龄:21
年龄:30
年龄:27
年龄:28
年龄:52
年龄:18
年龄:21
年龄:31
年龄:19
年龄:20

只要得到所有员工的员工号和年龄

var employeeList = Employee.GetList();
var list = employeeList.Select(x => new { x.EmployeeNo, x.Age });
StringBuilder sb = new StringBuilder();
foreach (var item in list)
{
     sb.AppendFormat("员工号{0},年龄:{1}<br/> ", item.EmployeeNo, item.Age);
}

或者
使用SELECT和匿名类型返回员工号和年龄的序列,并将员工号重命名为“EmNo ”,年龄重命名为“EmAge ”。

var employeeList = Employee.GetList();
var list = employeeList.Select(x => new { EmNo = x.EmployeeNo, EmAge = x.Age });
StringBuilder sb = new StringBuilder();
foreach (var item in list)
{
     sb.AppendFormat("员工号{0},年龄:{1}<br/> ", item.EmNo, item.EmAge);
}

输出结果

员工号NO-1,年龄:21
员工号NO-2,年龄:30
员工号NO-3,年龄:27
员工号NO-4,年龄:28
员工号NO-4,年龄:52
员工号NO-5,年龄:18
员工号NO-6,年龄:21
员工号NO-7,年龄:31
员工号NO-8,年龄:19
员工号NO-9,年龄:20

输出员工所有信息,并判断是否是老员工(年龄大于30岁算老员工)

var employeeList = Employee.GetList();
var list = employeeList.Select(x => new { EmNo = x.EmployeeNo, EmAge = x.Age, IsOld = x.Age > 30 ? "是" : "否" });
StringBuilder sb = new StringBuilder();
foreach (var item in list)
{
      sb.AppendFormat("员工号{0},年龄:{1},是否为老员工:{2}<br/> ", item.EmNo, item.EmAge, item.IsOld);
}

输出结果:

员工号NO-1,年龄:21,是否为老员工:否
员工号NO-2,年龄:30,是否为老员工:否
员工号NO-3,年龄:27,是否为老员工:否
员工号NO-4,年龄:28,是否为老员工:否
员工号NO-4,年龄:52,是否为老员工:是
员工号NO-5,年龄:18,是否为老员工:否
员工号NO-6,年龄:21,是否为老员工:否
员工号NO-7,年龄:31,是否为老员工:是
员工号NO-8,年龄:19,是否为老员工:否
员工号NO-9,年龄:20,是否为老员工:否
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. SQL 简介 SQL 的目标 理想情况下,数据库语言应允许用户: 建立数据库和关系结构 完成基本数据管理任务...
    板蓝根plank阅读 2,380评论 0 11
  • 1.简介 数据存储有哪些方式?电子表格,纸质文件,数据库。 那么究竟什么是关系型数据库? 目前对数据库的分类主要是...
    乔震阅读 1,776评论 0 2
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,765评论 18 399
  • 印象中的画画,早已成为学生时代美术课上的回忆。回忆中,我也曾有着乐于欣赏美的文艺情怀。 直到有一天,偶然看见一位简...
    hdj79阅读 315评论 0 5
  • 随着年龄的增长,明白的道理越多,对人情世故越淡泊,对感情越觉得幼稚,也不知道自己是怎么了,越来越希望自己有安静独立...
    漂亮菲菲迎风迎雨向太阳阅读 349评论 0 0