在asp.net中添加值之前,如何检查列表框中是否已经存在值

本文关键字:列表 检查 是否 存在 何检查 添加 net asp | 更新日期: 2023-09-27 18:24:21

如何检查值是否已经存在于列表框中,以便避免重复?

我已经在服务器端列表框中添加了一些值,当我添加到列表中时,我会得到更多的重复值。

如何避免重复?

lst_Viewers.Items.Add(reader["Name"].ToString());

在asp.net中添加值之前,如何检查列表框中是否已经存在值

ListItem item = new ListItem(reader["Name"].ToString());
if ( ! lst_Viewers.Items.Contains(item) ){
    lst_Viewers.Items.Add(item);
}

var name = reader["Name"].ToString();
ListItem item = lst_Viewers.Items.FindByText(name);
if ( item  == null ){
    lst_Viewers.Items.Add(new ListItem(name));
}
if(!lst_Viewers.Items.Any(item => item.Value.ToString().Equals(reader["Name"].ToString())
    lst_Viewers.Items.Add(reader["Name"].ToString());

另一种方法是将所有值插入到List<string>中,然后仅在循环后添加项,使用.Distinct()仅获得唯一值:

List<string> names = new List<string>();
while (reader.Read())
    names.Add(reader["Name"].ToString())
names.Distinct().ToList().ForEach(name => lst_Viewers.Items.Add(name));

这样你就不必在每次迭代中搜索整个DropDown了——更优雅(在我看来),更高效。