摘要:利用DataView來過過濾DataTable達到SQL Query的Distinct效果
最近遇到一個需求,拿到一個頗大的DataTable,在某個運算階段我只需要某些Column且不重複的資料,又無法從源頭下手在SQL Query給個Distinct,該如何作呢?
資料表(dtMember)如下
| ID | Name | City | ZipCode |
| 01 | Kenny | LA | 12345 |
| 02 | Peter | CA | 54321 |
| 03 | John | NY | 13125 |
| 04 | Jimmy | NY | 13125 |
該如何得到不重複的City列表呢?
string[] columnNames = new string[] { "City" };
DataTable dtCity = dtMembers.DefaultView.ToTable(true, columnNames);簡單兩行程式碼就搞定。
這邊直接利用DataView.ToTable()方法啟用Distinct功能,並且把想要的Column名稱寫入字串陣列餵給它即可。最後得到的資料表dtCity會是這樣:
| City |
| LA |
| CA |
| NY |
這樣一來,這個類似的問題以後就可以簡單解決了。