linq group by应用一
2015-07-29 17:35
246 查看
目标:1、设ID, ID1,ID2 为属性组合,若此属性组合值唯一时查询该单条记录value值;若不唯一时,获取该多条记录中collecttime时间最小的记录value值
测试代码
测试代码
class Person { public Person() { } public string ID { get; set; } public string ID1 { get; set; } public string Caption { get; set; } public string ID2 { get; set; } public int Value { get; set; } public DateTime CollectTime { get; set; } }
List<Person> persons = new List<Person>(); Person person1 = new Person(); person1.ID = "1"; person1.ID1 = "A"; person1.ID2 = "A1"; person1.Value = 22; person1.CollectTime = new DateTime(2011, 11, 11); persons.Add(person1); Person person2 = new Person(); person2.ID = "2"; person2.ID1 = "B"; person2.ID2 = "B1"; person2.Value = 33; person2.CollectTime = new DateTime(2011, 12, 11); persons.Add(person2); Person person3 = new Person(); person3.ID = "1"; person3.ID1 = "C"; person3.ID2 = "C1"; person3.Value = 22; person3.CollectTime = new DateTime(2013, 11, 11); persons.Add(person3); Person person4= new Person(); person4.ID = "1"; person4.ID1 = "C"; person4.ID2 = "C1"; person4.Value = 22; person4.CollectTime = new DateTime(2012, 11, 11); persons.Add(person4); var query = from c in persons orderby c.CollectTime group c by new { id = c.ID, id1 = c.ID1, id2 = c.ID2 } into r select r; foreach (var group in query) { //输出分组依据的字段 Console.WriteLine(group.Key); Console.WriteLine(group.First()); // 输出组内成员 //foreach (var score in group) //{ // Console.WriteLine(score); //} }
相关文章推荐
- 切换Fragment时避免重复调用onCreate
- android gridview listview控件内容刷新 而不是整个页面刷新
- java Object类中常用的方法
- Bootstrap学习--CSS
- for循环训练
- LeetCode 21 -- Merge Two Sorted Lists
- c++中的相对路径和绝对路径,正斜杠 \,反斜杠/
- 最简单 扩展django user
- MariaDB+keepalived
- 使用 RadioGroup和viewPager实现可滑动的tab
- python观察者模式
- 二分查找的非递归与递归实现
- 【CSS学习】CSS 创建
- Linux Shell 脚本入门
- java字符编码转换研究
- VB中WinSock控件的属性、方法、事件及应用
- Android程序中如何启动浏览器
- twisted.internet.endpoints的使用
- hdoj 1272 小希的迷宫
- 文章标题