好问题
Good  Question
  • 首 页
  • 问题
    • PHP
    • JAVA
    • CPlusPlus
    • C#
    • SQL
  • 关 于
  • 联 系
LINQ中的分组 关闭 返回上一级  

LINQ中的分组
+ 查看更多

发布日期:2018-02-23 13:57
分类:C#
浏览次数:168
描述:比如这样一个类
class Person { 
    internal int PersonID; 
    internal string car  ; 
}

建立这个类的对象列表:List persons;
PersonID用相同的ID来实例化:
persons[0] = new Person { PersonID = 1, car = "Ferrari" }; 
persons[1] = new Person { PersonID = 1, car = "BMW"     }; 
persons[2] = new Person { PersonID = 2, car = "Audi"    };
那我可不可以用PersonID分组,并且得到cars的列表。用一个Result类:
class Result { 
   int PersonID;
   List cars; 
}
分组之后得到:
results[0].PersonID = 1; 
List cars = results[0].cars; 

result[1].PersonID = 2; 
List cars = result[1].cars;
再加上:
var results = from p in persons
              group p by p.PersonID into g
              select new { PersonID = g.Key, // this is where I am not sure what to do
到底应该怎么做呢?
解答:
你应该是要这样:
var results = from p in persons
              group p.car by p.PersonId into g
              select new { PersonId = g.Key, Cars = g.ToList() };
非查询表达式:
var results = persons.GroupBy( p => p.PersonId, 
                               p => p.car,
                               (key, g) => new { 
                                                 PersonId = key, 
                                                 Cars = g.ToList() 
                                               }
                              );
基本上分组的内容是一个序列不论给定的属性的值是什么。
想要了解更多的话可以看看 Edulinq post on the topic
上一篇有没有办法检查文件是否正在使用?
如何计算字符串中字符串的出现次数?下一篇
下一篇如何计算字符串中字符串的出现次数?

最新文章

  • 函数`__construct`用来干嘛的
    发布日期:2018-03-26
  • 通过访客的IP得到他们的地区
    发布日期:2018-03-26
  • 合并两个PHP对象的最好的方法是什么?
    发布日期:2018-03-26
  • 该如何把一该如何把一个对象转化成数组?
    发布日期:2018-03-26
  • 什么是输出缓冲区?
    发布日期:2018-03-26
  • 在PHP中怎么把用逗号分隔的字符串分隔在一个数组里?
    发布日期:2018-03-26
  • 在PHP中使用foreach循环时查找数组的最后一个元素
    发布日期:2018-03-26
关于好问
收集整理一些有用的问题和回答,造福中国的程序旺和IT喵们!
友情链接
起飞页 
相关信息
版权声明
Copyright © 2016 - 2022  苏州卡达网络科技有限公司 备案号:苏ICP备09008221号