亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

DataTable怎么移除指定字段的重復行。然后按另一字段排序

DataTable怎么移除指定字段的重復行。然后按另一字段排序

一只名叫tom的貓 2018-12-06 22:46:14
現在有一個datatable,數據是這樣的 action???? date aaaa?????? 2012-2-3 12:11:22 bbbb??????2012-2-1? 11:22:32 aaaa?????? 2012-2-1? 10:22:22 ? 我想得到的最終結果是 action???? date aaaa?????? 2012-2-3 12:11:22 bbbb????? 2012-2-1? 11:22:32 也就是去除action字段重復的并且保留最新時間的action,然后按照date排序,最新的在前
查看完整描述

7 回答

?
胡子哥哥

TA貢獻1825條經驗 獲得超6個贊

用Linq 先根據查詢結果用時間排序,再用Linq的Distinct()方法對action重復值做過濾。給你個例子 DataTable dt=new DataTable(); dt.Columns.Add("action"); dt.Columns.Add("date"); dt.Columns["date"].DataType = typeof (DateTime); DataRow dr = dt.NewRow(); dr["action"] = "aaaa"; dr["date"] =Convert.ToDateTime("2012-2-3 12:11:22"); dt.Rows.Add(dr); dr = dt.NewRow(); dr["action"] = "bbbb"; dr["date"] = Convert.ToDateTime("2012-2-3 12:25:22"); dt.Rows.Add(dr); dr = dt.NewRow(); dr["action"] = "aaaa"; dr["date"] = Convert.ToDateTime("2012-2-3 12:22:22"); dt.Rows.Add(dr); var drs = (from data in dt.AsEnumerable() orderby data["date"] descending select data).Distinct(new DataRowCompare());//根據時間反序排序獲取結果 foreach (DataRow dataRow in drs) { Console.WriteLine("{0}-{1}",dataRow["date"],dataRow["action"]); } Console.ReadLine(); } //過濾條件,根據action過濾 public class DataRowCompare : IEqualityComparer { public bool Equals(DataRow x, DataRow y) { return x["action"] == y["action"]; } public int GetHashCode(DataRow obj) { return obj["action"].ToString().GetHashCode(); } }
查看完整回答
反對 回復 2018-12-09
?
慕容3067478

TA貢獻1773條經驗 獲得超3個贊

select? action,max(date)? date ?from table group by action order by date desc
查看完整回答
反對 回復 2018-12-09
?
慕姐8265434

TA貢獻1813條經驗 獲得超2個贊

datatable 可以這樣查詢嗎?
查看完整回答
反對 回復 2018-12-09
?
阿波羅的戰車

TA貢獻1862條經驗 獲得超6個贊

呵呵。。。
查看完整回答
反對 回復 2018-12-09
?
慕運維8079593

TA貢獻1876條經驗 獲得超5個贊

能不能給演示一下???呵呵
查看完整回答
反對 回復 2018-12-09
  • 7 回答
  • 0 關注
  • 678 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號