c# 中Linq Lambda 的ToLookup方法的使用
2018-02-27 11:50
591 查看
同样直接上代码:
执行结果:
其中item1是student实例。
此方法的作用和ToDictionary类似,但避免Dictionary类型key子段不能重复的问题。
同时也可用于按某字段Group By排序的场景,且相对后者的优势是带有索引便于操作(其实Group By的数据后面添加ToList()后也很方便,当然这是后话了)。
List<Student> ss = new List<Student>(); Student ss1 = new Student() { Id = 1, Age = 1, Name = "11" }; Student ss2 = new Student() { Id = 1, Age = 1, Name = "11" }; Student ss3 = new Student() { Id = 2, Age = 2, Name = "22" }; Student ss4 = new Student() { Id = 2, Age = 2, Name = "22" }; Student ss5 = new Student() { Id = 2, Age = 2, Name = "22" }; Student ss6 = new Student() { Id = 3, Age = 3, Name = "33" }; ss.Add(ss1); ss.Add(ss2); ss.Add(ss3); ss.Add(ss4); ss.Add(ss5); ss.Add(ss6); //var aa = ss.GroupBy(m => new { m.Id, m.Age }).Select(group => new {group.Key.Id,group.Key.Age,count = group.Count()}).ToList(); //foreach (var item in aa) //{ // Console.WriteLine(item.Id + "||" + item.Age + "||" + item.count); //} var dic = ss.ToLookup(m => m.Id); foreach (var item in dic) { Console.WriteLine("学生ID号:" + item.Key); foreach (var item1 in item) { Console.WriteLine("\t\t" + item1 + " || " + item1.Age + " || " + item1.Name); } }
执行结果:
学生ID号:1 Test.Student || 1 || 11 Test.Student || 1 || 11 学生ID号:2 Test.Student || 2 || 22 Test.Student || 2 || 22 Test.Student || 2 || 22 学生ID号:3 Test.Student || 3 || 33
其中item1是student实例。
此方法的作用和ToDictionary类似,但避免Dictionary类型key子段不能重复的问题。
同时也可用于按某字段Group By排序的场景,且相对后者的优势是带有索引便于操作(其实Group By的数据后面添加ToList()后也很方便,当然这是后话了)。
相关文章推荐
- Lambda表达式--使用方法语法的复杂查询: join (在单个 LINQ to Entities 查询中的两个结构上不兼容的初始化过程中出现类型)
- LINQ To SQL && Lambda 使用方法小结 (转)
- 在LINQ to SQL中使用Translate方法以及修改查询用SQL (转)
- Linq To Sql常用方法使用总结
- 使用Linq to SQL实现基本的增、删、改、查及绑定控件(C#)
- Linq To Sql常用方法使用总结【转】
- c#中使用linq to xml 访问 xml文件
- 扩展LINQ to SQL:使用Lambda Expression批量删除数据
- Linq to Oracle 使用教程(七)将数据库的存储过程映射到方法
- LINQ to Entities查询的简便方法就是使用函数
- Linq To Sql常用方法使用总结
- asp.net MVC + linq to Entity简单教程(四)linq to Entity查询中其它方法的使用
- C#3.5技术探讨(7) :Linq To Object with Lambda Expressions
- (转) C#异步调用使用匿名方法Lambda表达式
- 在LINQ to SQL中使用Translate方法以及修改查询用SQL 推荐
- C#细节之lambda,linq,匿名方法
- Linq To Sql常用方法使用总结
- 扩展LINQ to SQL:使用Lambda Expression批量删除数据 推荐
- 使用扩展方法对Linq to SQl Classes扩展,使其在增删改时返回结果
- 扩展LINQ to SQL:使用Lambda Expression批量删除数据