collection . generic . list . removeall的无效参数

本文关键字:无效 参数 removeall generic list collection | 更新日期: 2023-09-27 18:11:26

我有这个方法,它告诉我我有一些无效的参数,我试图从我的List<SelectListItem>对象调用RemoveAll。我只需要根据一个简单的条件从下拉列表中删除几个项目。

public JsonResult GetExportTables(CaseListDynExport objCaseListDynExport)
{
    List<SelectListItem> lstExportTablesList = new List<SelectListItem>();
    try
    {
        CaseListDynExportBLL objCaseListDynExportBLL = new CaseListDynExportBLL();
        DataTable dtExportTables = objCaseListDynExportBLL.GetExportTables(objCaseListDynExport);
        lstExportTablesList = DropDownHelper.GetSelectListItem("TableName", "TableExportCode", null, dtExportTables);
        if (objCaseListDynExport.someCondition)
            lstExportTablesList.RemoveAll(lstExportTablesList.Where(l => l.Text.IndexOf("Audit") >= 0));
    }
    catch (Exception ex)
    {
        LogUtility.ErrorException(ex);
    }
    return Json(lstExportTablesList, JsonRequestBehavior.AllowGet);
}

我一定是忽略了一些非常明显的东西,但我却不知道我做错了什么。

我看了这些帖子:

  • https://stackoverflow.com/a/1698166/1189566
  • https://stackoverflow.com/a/11874550/1189566
  • https://www.dotnetperls.com/removeall
  • https://msdn.microsoft.com/en-us/library/wdka673a (v = vs.110) . aspx

但是的;

collection . generic . list . removeall的无效参数

应该是:

lstExportTablesList.RemoveAll(l => l.Text.IndexOf("Audit") >= 0);

所以你直接传递一个lambda方法给RemoveAll方法来检查条件。

一个更简洁的方式,具有相同的功能,将是:

lstExportTablesList.RemoveAll(l => l.Text.Contains("Audit"));