摘要:利用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 |
這樣一來,這個類似的問題以後就可以簡單解決了。