C#以下代码块返回的是什么?

返回的是什么类型,具体返回什么数据,是否list{samedt,diffdt}两张表

 public List<DataTable> CompareList()
        {
            List<DataTable> listdt = new List<DataTable>();

            DataTable dtBefore = ExcelToDataTable(txtBeforePath.Text.ToString());
            DataTable dtAfter = ExcelToDataTable(txtAfterPath.Text.ToString());
            DataTable samedt = new DataTable();
            DataTable diffdt = new DataTable();
            samedt.Columns.Add("slot");
            samedt.Columns.Add("PN");

            diffdt.Columns.Add("slot");
            diffdt.Columns.Add("PN");

            //after table
            foreach (DataRow dr in dtAfter.Rows)
            {
                string afterPartNumber = dr["PN"].ToString();
                //before and after compare
                DataRow[] drs=  dtBefore.Select("PN=" + afterPartNumber);
                if (drs.Length > 0)
                {
                    //to do:add to same table
                    DataRow samedr = samedt.NewRow();
                    samedr["slot"] = dr["slot"].ToString();
                    samedr["PN"] = dr["PN"].ToString();
                    samedt.Rows.Add(samedr);
                }
                else
                {
                    //to do:add to diff table
                    DataRow diffdr = diffdt.NewRow();
                    diffdr["slot"] = dr["slot"].ToString();
                    diffdr["PN"] = dr["PN"].ToString();
                    diffdt.Rows.Add(diffdr);
                }
            }

            listdt.Add(samedt);
            listdt.Add(diffdt);
            return listdt;
        }

5个回答

你代码不是有了,CompareList返回包含samedt,diffdt这2个table的List集合

 public List<DataTable> CompareList(){....

            listdt.Add(samedt);
            listdt.Add(diffdt);
            return listdt;
showbo
支付宝加好友偷能量挖,胡杨等着我的招呼 显示在datagridview中那不是设置数据源为第一个表就行了datagridview.DataSource=CompareList()[0];datagridview.DataBind();
3 年多之前 回复

返回的是泛型 List T,可以是任何类型

happyleo12
happyleo12 我想在datagridview显示samedt,该怎么写?
3 年多之前 回复

返回类型就是List,从代码看是的,这个list中有两个DataTable

m294955408
偷偷的挂掉 回复happyleo12:你是用WPF还是WinForm。WPF关键就是数据绑定,你把读取出来的数据和DataGridView绑定就可以,存在一些细节,比如列表要用ObservableCollection,用List可能绑定数据不会随着控件数据的变化而变化。WinForm的话,把samedt给DataSource还是ItemSource把好像,然后只要显示列和数据列对应就能够显示。
3 年多之前 回复
happyleo12
happyleo12 我想在datagridview显示samedt,该怎么写?
3 年多之前 回复

DataTable dt = list[0] as DataTable;试试?

datagridview.datasource=list[0]

立即提问
相关内容推荐