• LInq中分组的笔记,记录一下。


    /*
                DataTable dtProduct = new DataTable();
                dtProduct.Columns.Add("ID");
                dtProduct.Columns.Add("Product");
    
                DataRow dr1 = dtProduct.NewRow();
                dr1["ID"] = "1";
                dr1["Product"] = "产品1";
                dtProduct.Rows.Add(dr1);
    
                DataRow dr2 = dtProduct.NewRow();
                dr2["ID"] = "2";
                dr2["Product"] = "产品2";
                dtProduct.Rows.Add(dr2);
    
                DataTable dtTip = new DataTable();
                dtTip.Columns.Add("ID");
                dtTip.Columns.Add("PID");
                dtTip.Columns.Add("Tip");
    
                DataRow dr3 = dtTip.NewRow();
                dr3["ID"] = "1";
                dr3["PID"] = "1";
                dr3["Tip"] = "标签1";
                dtTip.Rows.Add(dr3);
    
                DataRow dr4 = dtTip.NewRow();
                dr4["ID"] = "2";
                dr4["PID"] = "1";
                dr4["Tip"] = "标签2";
                dtTip.Rows.Add(dr4);
    
                DataRow dr5 = dtTip.NewRow();
                dr5["ID"] = "3";
                dr5["PID"] = "1";
                dr5["Tip"] = "标签3";
                dtTip.Rows.Add(dr5);
    
                DataRow dr6 = dtTip.NewRow();
                dr6["ID"] = "4";
                dr6["PID"] = "2";
                dr6["Tip"] = "标签1";
                dtTip.Rows.Add(dr6);
    
                DataRow dr7 = dtTip.NewRow();
                dr7["ID"] = "5";
                dr7["PID"] = "2";
                dr7["Tip"] = "标签3";
                dtTip.Rows.Add(dr7);
    
    
                var result = dtProduct.Rows.Cast<DataRow>().Select(R => new
                {
                    PID = R["ID"].ToString(),
                    Product = R["Product"].ToString(),
                    Tips = string.Join(",", 
                                dtTip.Rows
                                .Cast<DataRow>()
                                .Where(
                                    C => C["PID"].ToString().Equals(R["ID"].ToString())
                                 )
                                .Select(C => C["Tip"].ToString())
                                .ToArray())
                });
    
                foreach (var r in result) {
                    Console.WriteLine(r.Product + " - " + r.Tips);
                }
                */
    
                List<Tables> list = new List<Tables>();
                
                
                DataTable dtTip = new DataTable();
                dtTip.Columns.Add("ID");
                dtTip.Columns.Add("Product");
                dtTip.Columns.Add("Tip");
    
                DataRow dr3 = dtTip.NewRow();
                dr3["ID"] = "1";
                dr3["Product"] = "产品1";
                dr3["Tip"] = "标签1";
                dtTip.Rows.Add(dr3);
    
                DataRow dr4 = dtTip.NewRow();
                dr4["ID"] = "2";
                dr4["Product"] = "产品1";
                dr4["Tip"] = "标签2";
                dtTip.Rows.Add(dr4);
    
                DataRow dr5 = dtTip.NewRow();
                dr5["ID"] = "3";
                dr5["Product"] = "产品1";
                dr5["Tip"] = "标签3";
                dtTip.Rows.Add(dr5);
    
                DataRow dr6 = dtTip.NewRow();
                dr6["ID"] = "4";
                dr6["Product"] = "产品2";
                dr6["Tip"] = "标签1";
                dtTip.Rows.Add(dr6);
    
                DataRow dr7 = dtTip.NewRow();
                dr7["ID"] = "5";
                dr7["Product"] = "产品2";
                dr7["Tip"] = "标签3";
                dtTip.Rows.Add(dr7);
    
                /*
                var result = from DataRow datarow in dtTip.Rows
                             group datarow by datarow["Product"].ToString() into g
                             select new
                             {
                                 Product = g.Key,
                                 Tips = string.Join("," , g.Select(R => R["tip"].ToString()).ToArray())
                             };
    
                */
    
                var result = dtTip.Rows.Cast<DataRow>().GroupBy(R => R["Product"].ToString()).Select(G => new
                {
                    Product = G.Key,
                    Tips = string.Join(",", G.Select(R => R["tip"].ToString()).ToArray())
                });
    
                foreach (var r in result)
                {
                    Console.WriteLine(r.Product + " - " + r.Tips.ToString());
                }
    
                Console.ReadLine();
  • 相关阅读:
    SPLAY,LCT学习笔记(五)
    SPLAY,LCT学习笔记(四)
    SPLAY,LCT学习笔记(三)
    NOI 2012 随机数生成器
    SPLAY,LCT学习笔记(二)
    SPLAY,LCT学习笔记(一)
    bzoj 1503 郁闷的出纳员
    bzoj 1112 poi 2008 砖块
    bzoj 1064 noi2008 假面舞会题解
    数论知识点总结(noip范围)
  • 原文地址:https://www.cnblogs.com/chenliang-zibo/p/5895268.html
Copyright © 2020-2023  润新知