namespace LambdaApplication
{
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main(string[] args)
{
/// 有六个员工,基本信息如下
/// 姓名 年龄 薪金
/// 张飞 25 5000.00
/// 张飞 25 6000.00
/// 关羽 27 5600.98
/// 赵云 25 9000.00
/// 刘备 40 15000.00
/// 诸葛亮 25 12000.00
List<employee> es = new List<employee> { new employee("张飞",25,5000m),new employee("张飞", 25,6000m), new employee("关羽", 27, 5600.98m), new employee("赵云", 25, 9000), new employee("刘备", 40, 15000), new employee("诸葛亮",24,12000) };
/// 课题1:得到所有的姓名是"张飞"的员工,相当于 Sql 中的 where name = "张飞"
List<employee> es1 = es.FindAll(o => o.Name == "张飞");
/// 课题2:得到所有员工的最大年龄,相当于 Sql 中的 select max(Arg)
int maxArg = es.Max<employee>(o => o.Age);
/// 课题三:得到所有员工的平均工资,相当于 Sql 中的 select avg(Salary)
decimal avgSalary = es.Average<employee>(o => o.Salary);
/// 课题四:得到员工的姓名的花名册,相当于 Sql 中的 select name
IEnumerable<string> names = es.Select<employee, string>(o => o.Name);
/// 课题五:得到所有员工的姓名的花名册,但不能有重复的姓名,相当于 Sql 中的 select distinct name
IEnumerable<string> names1 = es.Select<employee, string>(o => o.Name).Distinct();
/// 课题六:得到所有的姓"张"的员工,相当于 Sql 中的 where name like '张%'
List<employee> es2 = es.FindAll(o => o.Name.IndexOf("张") == 0);
/// 课题七:得到所有的姓名中含有"葛"的员工,相当于 Sql 中的 where name like '%葛%'
List<employee> es3 = es.FindAll(o => o.Name.IndexOf("葛") > 0);
/// 课题八:得到所有的姓名中的最后一个字是"羽"并且薪金大于 3000 的员工,相当于 Sql 中的 where name like '%羽' and Salary > 3000
List<employee> es4 = es.FindAll(o => o.Name.IndexOf("羽") == o.Name.Length - 1 && o.Salary > 3000);
}
}
/// <summary>
/// 员工
/// </summary>
internal class employee
{
/// <summary>
/// 员工
/// </summary>
internal employee() { }
/// <summary>
/// 员工
/// </summary>
/// <param name="name"></param>
/// <param name="age"></param>
/// <param name="salary"></param>
internal employee(string name, int age, decimal salary)
{
Name = name;
Age = age;
Salary = salary;
}
/// <summary>
/// 姓名
/// </summary>
internal string Name { get; set; }
/// <summary>
/// 年龄
/// </summary>
internal int Age { get; set; }
/// <summary>
/// 薪水
/// </summary>
internal decimal Salary { get; set; }
}
}