Linq.GroupBy使用示例


    public class TestClass
    {
        public static void TestIt()
        {
            var ds = DateTime.Now;
            var list = new List<MA>();
            list.Add(new MA { ma001 = "A", ma002 = "1" });
            list.Add(new MA { ma001 = "A", ma002 = "2" });
            list.Add(new MA { ma001 = "A", ma002 = "F" });
            list.Add(new MA { ma001 = "B", ma002 = "1" });
            list.Add(new MA { ma001 = "B", ma002 = "D" });
            list.Add(new MA { ma001 = "C", ma002 = "E" });
            list.Add(new MA { ma001 = "A", ma002 = "3" });
            list.Add(new MA { ma001 = "B", ma002 = "A" });
            var listG = list.GroupBy(p => p.ma001);
            foreach (var g in listG)
            {
                var keys = list.Where(p => p.ma001 == g.Key).Aggregate("", (current, p) => current + p.ma002);
                foreach (var p in list.Where(p => p.ma001 == g.Key))
                {
                    p.ma003 = keys;
                }
            }
            foreach (var p in list)
            {
                Console.WriteLine(string.Format("{0},{1},{2}", p.ma001, p.ma002, p.ma003));
            }
            var de = DateTime.Now;
            Console.WriteLine("計算耗時(ms):" + (de - ds).TotalMilliseconds);
        }
    }
    public class MA
    {
        public string ma001 { get; set; }
        public string ma002 { get; set; }
        public string ma003 { get; set; }
    }

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM