• linq to datatable 和lambda查询datatable


    用Linq查询DataTable

            static DataTable table = new DataTable();
            static DataColumn dc = new DataColumn();
            static void Main()
            {
                Createtable();
                table.Rows.Add(1, 2,"2010-1-1");
                table.Rows.Add(2, 3, "2010-1-1");
                table.Rows.Add(3, 4, "2010-1-1");
                table.Rows.Add(4, 5, "2010-1-1");
                table.Rows.Add(5, 2, "2010-1-2");
                table.Rows.Add(6, 3, "2010-1-2");
                table.Rows.Add(7, 4, "2010-1-2");
                table.Rows.Add(8, 5, "2010-1-2");
    
    
                var query = from dt in table.AsEnumerable()
                            where new int[] { 2, 3, 4 }.Contains(dt.Field<Int32>("PID"))
                            orderby dt.Field<DateTime>("CreateDate") descending
                            group dt by dt.Field<Int32>("PID") into g
                            let n = (from d in g.Take(2).Skip(1) select d).FirstOrDefault()
                            select new
                            {
                                ID = n.Field<Int32>("ID"),
                                PID = g.Key,
                                CreateDate = n.Field<DateTime>("CreateDate")
                            };
                query.ToList().ForEach(m => Console.WriteLine("{0}	{1}	{2}	",m.ID,m.PID,m.CreateDate));
            }
            public static void Createtable()
            {
                dc = new DataColumn("ID", Type.GetType("System.Int32"));
                table.Columns.Add(dc);
                dc = new DataColumn("PID", Type.GetType("System.Int32"));
                table.Columns.Add(dc);
                dc = new DataColumn("CreateDate", Type.GetType("System.DateTime"));
                table.Columns.Add(dc);
            }

    用Lambda表达式查询DataTable

    DataTable dt = new DataTable();
                DataColumn dc = new DataColumn("UserName", System.Type.GetType("System.String"));
                DataColumn dc1 = new DataColumn("UserPwd", System.Type.GetType("System.String"));
                dt.Columns.Add(dc);
                dt.Columns.Add(dc1);
                DataRow dr = dt.NewRow();
                dr["UserName"] = "22";
                dr["UserPwd"] = "33";
                dt.Rows.Add(dr);
             
                var rownumber = dt.AsEnumerable().Where<DataRow>(C=>C["UserName"].ToString()=="22");
                int row = rownumber.Count<DataRow>();
                foreach ( DataRow en in  rownumber)
                {
    
                    Response.Write("User" + en["UserName"] + "pwd" + en["UserPwd"]);
                }
    记忆力下降,日常日志
  • 相关阅读:
    使用webstorm来创建并且运行vue项目详细教程
    Jmeter后置处理器之Json提取器
    Linux常用命令
    Linux安装Mysql
    Linux安装JDK
    redhat6.5安装yum
    Linux安装python
    Linux安装Tomcat
    搞懂Redis协议RESP
    1TB是多大?
  • 原文地址:https://www.cnblogs.com/yushuo/p/4318978.html
Copyright © 2020-2023  润新知