和SQL命令中的select作用相似但位置不同,查詢表達式中的select及所接子句是放在表達式最后并把子句中的變量也就是結(jié)果返回回來恩急。
一個員工安排到一輛車上咽块,一輛車可以有很多員工,車牌號和員工號是一對多的關(guān)系涣楷。
員工類
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; }
}
獲取員工數(shù)據(jù)方法
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);
}
輸出結(jié)果
年齡: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);
}
輸出結(jié)果
員工號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);
}
輸出結(jié)果:
員工號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,是否為老員工:否