假設我有一個來自表的列值的列表,我如何刪除空字符串和重複值。請看下面的代碼:如何從列表中刪除空字符串,然後從列表中刪除重複的值
List<string> dtList = dtReportsList.AsEnumerable().Select(dr => dr.Field<string>("column1")).ToList();
這是我已經編寫剛纔但卻阿米拉姆的代碼方式更優雅,所以我會選擇在這裏,答案是我是如何做的:
DataTable dtReportsList = someclass.GetReportsList();
if (dtReportsList.Rows.Count > 0)
{
List<string> dtList = dtReportsList.AsEnumerable().Select(dr => dr.Field<string>("column1")).ToList();
dtList.RemoveAll(x=>x == "");
dtList = dtList.Distinct().ToList();
rcboModule.DataSource = dtList;
rcboModule.DataBind();
rcboModule.Items.Insert(0, new RadComboBoxItem("All", "All"));
}
瞭解RemoveAll()mutates dtList;刪除的每個元素都會強制List重新排列其使用的底層數組中較高索引中的元素。只需像Amiram用他的Where方法跳過它一樣簡單。 – KeithS 2012-08-08 15:09:52