class Program
{
static void Main(string[] args)
{
List<Project> plist = new List<Project>() {
new Project(){ ID = 1,PName = "項目1",MID = 1},
new Project(){ ID = 2,PName = "項目2",MID = 2},
new Project(){ ID = 3,PName = "項目3",MID = 3},
new Project(){ ID = 4,PName = "項目4",MID = 1},
new Project(){ ID = 5,PName = "項目5",MID = 2},
new Project(){ ID = 6,PName = "項目6",MID = 3},
};
List<Users> ulist = new List<Users>() {
new Users(){ ID = 1,UName = "員工1"},
new Users(){ ID = 2,UName = "員工2"},
new Users(){ ID = 3,UName = "員工3"},
new Users(){ ID = 4,UName = "員工4"},
new Users(){ ID = 5,UName = "張三"},
new Users(){ ID = 6,UName = "員工6"},
new Users(){ ID = 7,UName = "員工7"},
new Users(){ ID = 8,UName = "員工8"},
};
List<Manager> mlist = new List<Manager>() {
new Manager(){ ID = 1,MName = "經理1"},
new Manager(){ ID = 2,MName = "經理2"},
new Manager(){ ID = 3,MName = "經理3"},
};
List<Performance> list = new List<Performance>() {
new Performance(){ PID = 1,UID = 1,Score = 89},
new Performance(){ PID = 1,UID = 2,Score = 90},
new Performance(){ PID = 2,UID = 3,Score = 99},
new Performance(){ PID = 3,UID = 4,Score = 100},
new Performance(){ PID = 4,UID = 5,Score = 98},
new Performance(){ PID = 5,UID = 6,Score = 89},
new Performance(){ PID = 5,UID = 7,Score = 97},
new Performance(){ PID = 6,UID = 8,Score = 68},
};
//求不同成員的績效成績和
var a = from i in list
group i by i.PID
into s
select new
{
Key = s.Key,
Count = s.Sum(p => p.Score)
};
Console.WriteLine("========================");
foreach (var item in a)
{
Console.WriteLine(item.Key+","+item.Count);
}
Console.WriteLine("========================");
//求不同成員的績效成績最大值
var aa = from i in list
group i by i.PID
into s
select new
{
Key = s.Key,
Count = s.Max(p => p.Score)
};
Console.WriteLine("========================");
foreach (var item in aa)
{
Console.WriteLine(item.Key + "," + item.Count);
}
Console.WriteLine("========================");
//連接查詢
var xx = from jx in list
join emp in plist on jx.PID equals emp.ID
join user in ulist on jx.UID equals user.ID
join jl in mlist on emp.MID equals jl.ID
select new
{
XiangMu = emp.PName,
JinglI = jl.MName,
UserName = user.UName,
JiXiao = jx.Score
};
//分組
var groups = from x in xx
group x by x.XiangMu;
//輸出
foreach (var item in groups)
{
Console.WriteLine(item.Key+"=================================");
foreach (var i in item)
{
Console.WriteLine(i.XiangMu + "\t" + i.JinglI + "\t" + i.UserName + "\t" + i.JiXiao);
}
}
//最大值
var max = xx.Max(p => p.JiXiao);
//最小值
var min = xx.Min(p => p.JiXiao);
//平均值
var avg = xx.Average(p => p.JiXiao);
//輸出
Console.WriteLine(max+","+min+","+avg);
Console.ReadLine();
}
//項目
class Project
{
public int ID { get; set; }
public string PName { get; set; }
public int MID { get; set; }
}
//員工
class Users
{
public int ID { get; set; }
public string UName { get; set; }
}
//經理
class Manager
{
public int ID { get; set; }
public string MName { get; set; }
}
//績效
class Performance
{
public int UID { get; set; }
public int PID { get; set; }
public int Score { get; set; }
}
}
Linq 求最大值,最小值,平均值等基本操作
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.