如何使用Linq得到以下的数据

Answered 如何使用Linq得到以下的数据

  • 2009年6月10日 6:14
     
     
    有一个类 Inn   有以下几个字段       InnConn            InnName
                                                     16                    test16
                                                     17                   test17
                                                     18                   test18
                                                     16                    test19
                                                     18                   test20

    这样的一个List<Inn>() ,  最终需要的数据是
                                                    InnConn            InnName
                                                     16                    test16, test19
                                                     17                   test17
                                                     18                   test18, test20

      就是说把   InnConn  相同的  InnName 用逗号来合并。                             
    学习者

全部回复

  • 2009年6月10日 7:01
     
     
    为什么没人回复
    学习者
  • 2009年6月10日 20:37
    版主
     
     已答复
  • 2009年6月14日 10:29
     
     已答复 包含代码
    using System;
    using System.Collections.Generic;
    using System.Linq;
    
    namespace Host
    {
        class Program
        {
            static void Main(string[] args)
            {
                List<Item> list = new List<Item>() 
                { 
                    { new Item() { InnConn = 16, InnName = "test16" }},
                    { new Item() { InnConn = 17, InnName = "test17" }},
                    { new Item() { InnConn = 18, InnName = "test18" }},
                    { new Item() { InnConn = 16, InnName = "test19" }},
                    { new Item() { InnConn = 18, InnName = "test20" }},
                };
                var newList = from i in list group i by i.InnConn into listGroup select new Item { InnConn = listGroup.Key, InnName = listGroup.Aggregate((all, current) => 
                {
                    all.InnName = string.Format("{0},{1}", all.InnName, current.InnName);
                    return all;
                }).InnName };
                foreach (var item in newList)
                {
                    Console.WriteLine("{0} {1}", item.InnConn, item.InnName);
                }
            }
        }
    
        internal class Item
        {
            internal int InnConn;
            internal string InnName;
        }
    }
    

    好好学习,天天向上。