linq 分组操作
示例
分组是指将数据分组的操作,以便每个组中的元素共享一个公共属性。
通过...分组
对具有共同属性的元素进行分组。
方法语法
//通过...分组 class Order { public string Customer { get; set; } public string Description { get; set; } } ... var orders = new Order[] { new Order { Customer = "C1", Description = "O1" }, new Order { Customer = "C2", Description = "O2" }, new Order { Customer = "C3", Description = "O3" }, new Order { Customer = "C1", Description = "O4" }, new Order { Customer = "C1", Description = "O5" }, new Order { Customer = "C3", Description = "O6" }, }; var groups = orders.GroupBy(o => o.Customer); // groups: { (Key="C1", Values="O1","O4","O5"), (Key="C2", Values="O2"), (Key="C3", Values="O3","O6") }
查询语法
//通过...分组 var groups = from o in orders group o by o.Customer; // groups: { (Key="C1", Values="O1","O4","O5"), (Key="C2", Values="O2"), (Key="C3", Values="O3","O6") }
去查查看
根据键选择器功能将元素插入一对多字典中。
方法语法
//去查查看 var ordersByCustomer = orders.ToLookup(o => o.Customer); // ordersByCustomer = ILookUp<string, Order> //{ // "C1" => { Order("01"), Order("04"), Order("05") }, // "C2" => { Order("02") }, // "C3" => { Order("03"), Order("06") } //}
查询语法
//不适用。