首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

怎么得到 一个 list<entity>中所有的 id和id出现的次数count 以及 id 对应的name

2012-06-14 
如何得到 一个 listentity中所有的 id和id出现的次数count 以及 id 对应的name如何得到 一个 listentit

如何得到 一个 list<entity>中所有的 id和id出现的次数count 以及 id 对应的name
如何得到 一个 list<entity>中所有的 id和id出现的次数count 以及 id 对应的name


[解决办法]
list.GroupBy(x=>x.id).Select(x=>new{count=x.Count(),name=x.Key});
[解决办法]

C# code
var list = new[] {    new { id=1, name="a" },   new { id=1, name="a" },   new { id=2, name="b" },   new { id=3, name="c" },   new { id=3, name="c" },   new { id=2, name="b" },   new { id=2, name="b" },};var result = list.GroupBy(x => x.id).Select(g => new { id = g.Key, count = g.Count(), name = g.First(s => s.id == g.Key).name });foreach (var r in result)    Console.WriteLine("id:{0} name:{1} count:{2}", r.id, r.name, r.count);
[解决办法]
取group的第一个元素.

C# code
var result = list.GroupBy(x => x.id).Select(g => new { id = g.Key, count = g.Count(), item = g.First() });foreach (var r in result)    Console.WriteLine("id:{0} name:{1} count:{2}", r.id, r.item.name, r.count);
[解决办法]
C# code
    public class Student    {        public int Id { get; set; }        public string Name { get; set; }    }    protected void Page_Load(object sender, EventArgs e)    {        List<Student> studentList = new List<Student>();        studentList.Add(new Student { Id = 1, Name = "1" });        studentList.Add(new Student { Id = 2, Name = "2" });        studentList.Add(new Student { Id = 2, Name = "3" });        studentList.Add(new Student { Id = 3, Name = "4" });        studentList.Add(new Student { Id = 3, Name = "5" });        studentList.Add(new Student { Id = 3, Name = "6" });        studentList.Add(new Student { Id = 4, Name = "7" });        studentList.Add(new Student { Id = 5, Name = "8" });        studentList.Add(new Student { Id = 6, Name = "9" });        studentList.Add(new Student { Id = 7, Name = "10" });        var results = studentList.Select(o => new        {            Id = o.Id,            Name = o.Name,            Count = studentList.Where(s => s.Id == o.Id).Count()        });        foreach (var item in results)        {            Response.Write(string.Format("Id={0},Name={1},Count={2}", item.Id, item.Name, item.Count));            Response.Write("<br/>");        }    } 

热点排行