C# - 单击按钮时从列表中删除项目

时间:2016-04-28 11:37:16

标签: c# asp.net .net

我的问题是;单击按钮时,我在DropDownList中的List, next 中输入项目。问题是我再点击按钮再次存在项目到我的DropDown。

如何解决此问题(对不起图像)

enter image description here

   List<string> companyList = new List<string>();

   foreach (string item in companyList.ToList())
   {
     companyList.Remove(item); ----> this not working.......
   }

   foreach (SPListItem item in myItemCol)
   {
     companyList.Add(item["Company"].ToString());
   }

   companyList.Sort();

   foreach (string item in companyList.Distinct())
   {
      ddComFilter.Items.Add(item.ToString());
   }

3 个答案:

答案 0 :(得分:3)

您可以使用Contains方法检查它是否已存在

if(!ddComFilter.Items.Contains(items.ToString())
{
    ddComFilter.Items.Add(item.ToString());
}

如果该项目尚未包含在下拉列表中,则只会添加该项目

答案 1 :(得分:3)

您可以在将项目添加到列表之前检查项目是否存在。

foreach (SPListItem item in myItemCol)
   {
     if(!companyList.Contains(item["Company"].ToString())
     {
       companyList.Add(item["Company"].ToString());
     }
   }

然后,您需要在向其添加值之前清除ddComFilter

companyList.Sort();
ddComFilter.Items.Clear();
foreach (string item in companyList.Distinct())
   {
      ddComFilter.Items.Add(item.ToString());
   }

替代解决方案

您可以使用生成的列表绑定ddComFilter,而不是迭代集合并逐个添加。如果是这样,你不需要清除集合,删除项目等。代码将是:

ddComFilter.Datasource = companyList;
ddComFilter.DataBind();

这对您来说是一个有用的article

答案 2 :(得分:2)

在将列表添加为项目之前,您应该清除下拉列表:

   companyList.Sort();

   ddComFilter.Items.Clear();  // clear
   foreach (string item in companyList.Distinct())
   {
      ddComFilter.Items.Add(item.ToString());
   }