作者don750421 (1+1≠2)
看板C_Sharp
標題[問題] DataTable distinct保留最後一筆?
時間Tue Sep 1 00:36:23 2015
如果我有一個DataTable,大概是長這樣...
Name | Age | sex | Phone
---------+-----+-------+--------
row1 Kevin | 18 | boy | 1223
------------------------------------
row2 Peter | 20 | boy | 2334
------------------------------------
row3 Tom | 23 | boy | 5656
------------------------------------
row4 Kevin | 28 | girl | 4564
------------------------------------
row5 Kevin | 25 | boy | 1223
如果我使用,DataTable的distinct Name這個欄位。則應該會是第4.5筆被砍掉....
那,有沒有辦法在我做distinct時,是保留最後一筆資料...
希望輸出結果如下....
Name | Age | sex | Phone
---------+-----+-------+--------
row1 Peter | 20 | boy | 2334
------------------------------------
row2 Tom | 23 | boy | 5656
------------------------------------
row3 Kevin | 25 | boy | 1223
P.S 我知道可以新增一個DataTable,一筆一筆慢慢比較,再挪過去新的DataTable。
但是我想知道有沒有什麼比較快速的方式呢??
謝謝各位前輩
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.27.165.214
※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1441038991.A.717.html
推 wanderer1412: 不論資料怎麼塞,都是取相同的最後一筆嗎? 09/01 00:42
推 wanderer1412: 還有怎麼確定下SQL,取到的資料的最後一筆是你要的 09/01 00:46
→ don750421: 是的,無論資料怎麼塞,相同key只保留最後一筆 09/01 06:48
→ don750421: 應該說,datatable是我讀某個檔案內容所組出來的,所以 09/01 06:51
→ don750421: ,就以最後一筆為主 09/01 06:51
→ soup514: var r = from b in dt.AsEnumerable() 09/01 15:55
→ soup514: group b by b.Field<string>(Name) into g 09/01 15:56
→ soup514: select g.Last(); 09/01 15:57
→ m339606: 為什麼不在資料庫處理完再拿出來呢? 09/01 21:27
→ m339606: oops 來源原來是檔案。 09/01 21:28