本帖最后由 cuole009 于 2011-09-28 16:53:57 编辑

解决方案 »

  1.   

    如上图,前两条数据日期一样的,取出来存一个DATATABLE,29号的再取出来存一个
      

  2.   

    Select方法,datatable有Select方法,得到DataRow[],自己加到另一个datatable中
      

  3.   

    select (??)我取的是列值相同的数据
      

  4.   


    private IEnumerable<DataTable> Split(DataTable dt,String columnName)
            {
                var distinctValues = (from row in dt.AsEnumerable()
                                      select row[columnName]).Distinct(); //获取唯一值            foreach (var distinctValue in distinctValues)
                {
                    DataTable result = dt.Clone();
                    DataRow[] rows = dt.Select(String.Format("{0}='{1}'", columnName, distinctValue)); //获取相同值的行
                    foreach (var dataRow in rows)
                    {
                        result.Rows.Add(dataRow.ItemArray); //复制值
                    }
                    
                    result.AcceptChanges();                yield return result;
                }
            }        [Test]
            public void Test()
            {
                DataTable dt = new DataTable("test");
                dt.Columns.Add("日期");
                dt.Columns.Add("店别");            dt.Rows.Add("2011-09-28", "中关村");
                dt.Rows.Add("2011-09-28", "中关村");
                dt.Rows.Add("2011-09-29", "中关村");            var result = Split(dt, "日期");
                Assert.AreEqual(2,result.Count());
            }
      

  5.   

    DataTable dt=new DataTable();
    //获取原有的datatable的值
    string strResult=dt1.Rows[i][j].Tostring();//i 行  j列 dt1原有的datatabledt.Culumns.Add("Test");
    dt.Rows.Add(strResulr);
      

  6.   

    可以尝试用dictionary,加入的时候用contain判断key值
      

  7.   

    select方法  自己 写条件
      

  8.   

    上面分别用 到了datatable 的select和linq相关