C# 在将项目添加到checkboxlist之前,如何检查checkboxlist中是否存在项目?

C# 在将项目添加到checkboxlist之前,如何检查checkboxlist中是否存在项目?,c#,asp.net,C#,Asp.net,我有一个复选框列表,我在复选框列表中得到了重复的列表项。在添加项目之前,我想检查复选框列表中是否存在特定项目。执行此检查的优化方法是什么 <asp:CheckBoxList runat="server" ID="chkboxlist" CellPadding="5" CellSpacing="5" /> chkboxlist.Items.Add("GEORGIA"); chkboxlist.Items.Add("OHIO"); chkboxlist.Items.添

我有一个复选框列表,我在复选框列表中得到了重复的列表项。在添加项目之前,我想检查复选框列表中是否存在特定项目。执行此检查的优化方法是什么

<asp:CheckBoxList runat="server" ID="chkboxlist"  CellPadding="5" CellSpacing="5" />

   chkboxlist.Items.Add("GEORGIA");
   chkboxlist.Items.Add("OHIO");

chkboxlist.Items.添加(“格鲁吉亚”);
chkboxlist.Items.Add(“俄亥俄州”);

在将任何状态添加到复选框列表之前,我想检查状态值是否已存在于checbox列表中。如何做到这一点?

您可以使用LINQ的
可枚举。任何类似

string newItem = "OHIO";
if (chkboxlist.Items.Cast<ListItem>().Any(r => r.Text == newItem))
{
    //Already exists
}
else
{
    chkboxlist.Items.Add(newItem);
}
string newItem=“OHIO”;
if(chkboxlist.Items.Cast().Any(r=>r.Text==newItem))
{
//已经存在
}
其他的
{
chkboxlist.Items.Add(newItem);
}
如果要进行不区分大小写的比较,可以执行以下操作:

if (chkboxlist.Items.Cast<ListItem>()
      .Any(r => String.Equals(r.Text,newItem, StringComparison.InvariantCultureIgnoreCase)))
if(chkboxlist.Items.Cast())
.Any(r=>String.Equals(r.Text、newItem、StringComparison.InvariantCultureIgnoreCase)))
您可以使用属性的方法检查值是否存在。如果值不存在,则方法返回null

按代码

If(checkboxlist.Items.FindByValue("yourvalue") !=null)
    {
         // Exists
    }

谢谢你的帮助。我只需要添加新的项目部分。因此,我尝试了下面的字符串newItem=“OHIO”;如果(chkboxlist.Items.Cast().Any(r=>r.Text!=newItem)){chkboxlist.Items.Add(newItem);}否。你知道代码是好的。我想检查一下是否没有像“Ohio”这样的值,只需去添加项目。因此,我不确定在您的代码中要检查的位置=空选项。@Selva,只需反转条件,如
if(!chkboxlist.Items.Cast().Any(r=>string.Equals(r.Text,newItem,StringComparison.InvariantCultureIgnoreCase))
if(!chkboxlist.Items.Cast().Any(r=>r.Text==newItem))
注意
在if语句内的条件开始处非常感谢。我们是否有任何单行代码通过C#?@Selva,
chkboxlist.items.Clear()删除复选框列表中的所有项目
我知道这是旧的,如果它不是
null
如何选择该复选框?谢谢。您可以将所选属性设置为true。类似于这个checkboxlist.Items.FindByValue(“yourvalue”).Selected=true;或者更好的var item=checkboxlist.Items.FindByValue(“yourvalue”);Item.Selected=true;