zoukankan      html  css  js  c++  java
  • 原来DataTable的Distinct竟如此简单!

    DataView可以帮我们直接获取Distinct数据,

    DataTable dataTable;DataView dataView = dataTable.DefaultView;

    DataTable dataTableDistinct = dataView.ToTable(true,"FieldName1","FieldName2","...");

    //注:其中ToTable()的第一个参数为是否DISTINCT

    DataTable MyTable = ds.Tables[2]; //ds为数据集

    DataTable dtClone = MyTable.Clone();  //创建新表
    DataView dv = new DataView(dtClone);  //用于查找
    dv.Sort = "Item";
    foreach(DataRow dr in MyTable.Rows)   //单循环, 效率高一点
    {
      int rowIndex = dv.FindRow(dr["Item"]);
      if (rowIndex == -1)
      {
        dtClone.ImportRow(dr);  //添加行
        dtClone.Rows[dtClone.Rows - 1] ["Quantity"] = (decimal)MyTable.Compute("Sum(Quantity)", string.Format("Item = '{0}'", dr["Item"].ToString()); //合计
      }
    }
    dtClone.AcceptChanges();

    ds.Tables.Remove(MyTable);  //删除旧表
    ds.Tables.Add(dtClone);     //添加新表

    dtClone.Rows[dtClone.Rows.Count - 1] ["Quantity"] = (decimal)MyTable.Compute("Sum(Quantity)", string.Format("Item = '{0}'", dr["Item"].ToString()); //合计

  • 相关阅读:
    LeetCode 55
    LeetCode 337
    LeetCode 287
    LeetCode 274
    LeetCode 278
    LeetCode 264
    LeetCode 189
    LeetCode 206
    LeetCode 142
    LeetCode 88
  • 原文地址:https://www.cnblogs.com/Unrmk-LingXing/p/4081957.html
Copyright © 2011-2022 走看看