轉:去掉DataTable重複資料(程式樣本比較)

來源:互聯網
上載者:User

標籤:style   blog   io   color   ar   os   sp   for   資料   

using System;using System.Collections.Generic;using System.Data;using System.Linq;using System.Text;using System.Threading.Tasks;namespace RemoveDupRowDemoTest{    class Program    {        static void Main(string[] args)        {            DataTable _dt = new DataTable();            _dt.Columns.Add("id", typeof(int));            _dt.Columns.Add("name", typeof(string));            _dt.Columns.Add("address", typeof(string));            DataRow _dr = _dt.NewRow();            _dr["id"] = 1;            _dr["name"] = "lipeng";            _dr["address"] = "DongXiaoKou";            _dt.Rows.Add(_dr);            _dt.Rows.Add(_dr.ItemArray);            _dt.Rows.Add(_dr.ItemArray);            _dr = _dt.NewRow();            _dr["id"] = 2;            _dr["name"] = "xiaoNa";            _dr["address"] = "DongXiaoKou";            _dt.Rows.Add(_dr);            _dr = _dt.NewRow();            _dr["id"] = 3;            _dr["name"] = "BingLi";            _dr["address"] = "TianTongYuan";            _dt.Rows.Add(_dr);            _dt.Rows.Add(_dr.ItemArray);            Console.WriteLine("--------------------原來有重複資料的Table----------------------");            _dt.AsEnumerable().ToList().ForEach(                x =>                {                    Console.WriteLine(x["id"].ToString() + "  " + x["name"].ToString() + "   " + x["address"].ToString());                });            Console.WriteLine();            Console.WriteLine("--------------------用Linq去重複後的Table----------------------");            var _comPresult = _dt.AsEnumerable().Distinct(new DataTableRowCompare());            DataTable _resultDt = _comPresult.CopyToDataTable();            _resultDt.AsEnumerable().ToList().ForEach(               x =>               {                   Console.WriteLine(x["id"].ToString() + "    " + x["name"].ToString() + "   " + x["address"].ToString());               });            Console.WriteLine();            Console.WriteLine("--------------------用DefaultView去重複後的Table----------------------");            DataTable _dtDefalut = _dt.DefaultView.ToTable(true, "id", "name", "address");            _dtDefalut.AsEnumerable().ToList().ForEach(              x =>              {                  Console.WriteLine(x["id"].ToString() + "    " + x["name"].ToString() + "   " + x["address"].ToString());              });            Console.ReadLine();        }    }    public class DataTableRowCompare : IEqualityComparer<DataRow>    {        #region IEqualityComparer<DataRow> 成員        public bool Equals(DataRow x, DataRow y)        {            return (x.Field<int>("id") == y.Field<int>("id"));        }        public int GetHashCode(DataRow obj)        {            return obj.ToString().GetHashCode();        }        #endregion    }}

 

轉:去掉DataTable重複資料(程式樣本比較)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.