本文共 7114 字,大约阅读时间需要 23 分钟。
using System;using System.Collections.Generic;using System.Linq;namespace ConsoleApplication22{ class Program { public Student[] students { get; set; } public SC[] scs { get; set; } public Course[] courses { get; set; } public Program() { students = new Student[] { new Student { sid = "cxc", age = 18, sex = true, birth = DateTime.Now }, new Student { sid = "qwe", age = 19, sex = false, birth = DateTime.Now }, new Student { sid = "zxc", age = 17, sex = false, birth = DateTime.Now }, new Student { sid = "asd", age = 16, sex = true, birth = DateTime.Now } }; scs = new SC[] { new SC {sid = "cxc",cid="A",score =83 }, new SC {sid = "cxc",cid="B",score =94 }, new SC {sid = "cxc",cid="C",score =87 }, new SC {sid = "qwe",cid="A",score =65 }, new SC {sid = "qwe",cid="B",score = 76 }, new SC {sid = "asd",cid="A",score =74 }, new SC {sid = "asd",cid="B",score =87 }, new SC {sid = "zxc",cid="A",score =90 }, new SC {sid = "zxc",cid="B",score =81 } }; courses = new Course[] { new Course {cid = "A" ,description = "这是A课程"}, new Course {cid = "B" ,description = "这是B课程"} }; } static void Main(string[] args) { Program p = new Program(); var result = p.students.Where(s => s.age > 17).OrderByDescending(s=>s.age); foreach(Student s in result) { Console.WriteLine("sid:{0} age:{1} sex:{2} birth:{3}",s.sid,s.age,s.sex,s.birth); } Console.WriteLine("======================我是华丽分割线======================"); var result1 = p.scs.Count(); Console.WriteLine(result1); Console.WriteLine("======================我是华丽分割线======================"); var result2 = p.scs.Distinct(new SCCompare());//Distinct的使用 foreach(var s in result2) { Console.WriteLine("sid:{0} cid:{1} score:{2}", s.sid, s.cid, s.score); } Console.WriteLine("======================我是华丽分割线======================"); var result3 = p.scs.Max(s => s.score);//94 Console.WriteLine(result3); Console.WriteLine("======================我是华丽分割线======================"); var result4 = p.scs.GroupBy(s => s.sid).Select(g=>(new { sid=g.Key,score=g.Sum(s=>s.score)})); foreach (var s in result4) { Console.WriteLine(s.sid+":"+s.score); } Console.WriteLine("======================我是华丽分割线======================"); var result5 = from s in p.students join ss in p.scs on s.sid equals ss.sid select new { sid = s.sid, age = s.age, cid = ss.cid, score = ss.score }; foreach (var s in result5) { Console.WriteLine(s.sid + ":" + s.age + ":" +s.cid + ":" +s.score); } Console.WriteLine("======================我是华丽分割线======================"); var result6 = from rr in (from r in result5 group r by r.sid into g //注意这个 into ,在查询的过程中划分出新结果 select new { sid = g.Key, score = g.Sum(sum => sum.score) }) where rr.score>170 select rr; foreach (var s in result6) { Console.WriteLine(s.sid + ":" + s.score); } Console.WriteLine("======================我是华丽分割线======================"); Listtt1 = new List { new T1 {ID = 1,MAC = "111111" }, new T1 {ID = 2,MAC = "222222" }, new T1 {ID = 4,MAC = "333333" }, }; List tt2 = new List { new T2 {ID = 1,PV = 51,UV = 72 }, new T2 {ID = 2,PV = 48,UV = 92 }, new T2 {ID = 4,PV = 57,UV = 62 }, new T2 {ID = 1,PV = 38,UV = 85 }, new T2 {ID = 2,PV = 46,UV = 180 }, new T2 {ID = 4,PV = 87,UV = 69 } }; var result7 = from t1 in tt1 join t2 in tt2 on t1.ID equals t2.ID select new { ID = t1.ID, MAC = t1.MAC, PV = t2.PV, UV = t2.UV }; result7 = from t in result7 group t by new { t.ID, t.MAC } into tt select new { ID = tt.Key.ID,MAC=tt.Key.MAC,PV = tt.Sum(s=>s.PV), UV = tt.Sum(s => s.UV) }; Console.WriteLine("ID:MAC:PV:UV"); foreach (var s in result7) { Console.WriteLine(s.ID + ":" + s.MAC + ":" + s.PV + ":" + s.UV); } Console.WriteLine("======================我是华丽分割线======================"); var result8 = from s in p.scs join c in p.courses on s.cid equals c.cid into left from l in left.DefaultIfEmpty() select new { sid = s.sid, cid = s.cid, score = s.score, description = l==null?"空":l.description }; foreach (var s in result8) { Console.WriteLine(s.sid + ":" + s.cid+ ":" + s.score + ":" + s.description); } Console.WriteLine("======================我是华丽分割线======================"); var result9 = (from t in tt1 where !(from t1 in tt1 select t1.ID).Take(2).Contains(t.ID) select t).Take(1); foreach (var s in result9) //查询第3条 { Console.WriteLine(s.ID + ":" + s.MAC); } Console.WriteLine("======================我是华丽分割线======================"); } } class Student { public string sid { get; set; } public int age { get; set; } public bool sex { get; set; } public DateTime birth { get; set; } public virtual ICollection scs { get; set; } } class SC { public string sid { get; set; } public string cid { get; set; } public int score { get; set; } public virtual ICollection students { get; set; } public virtual ICollection courses { get; set; } } class Course { public string cid { get; set; } public string description { get; set; } public virtual ICollection scs { get; set; } } class SCCompare:IEqualityComparer { public bool Equals(SC s1, SC s2) { return s1.cid.Equals(s2.cid)&&s1.sid.Equals(s2.sid)&&s1.score.Equals(s2.score); } public int GetHashCode(SC s) { return base.GetHashCode(); } } class T1 { public int ID { get; set; } public string MAC { get; set; } } class T2 { public int ID { get; set; } public int PV { get; set; } public int UV { get; set; } }}
转载地址:http://xtdaf.baihongyu.com/