Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在asp.net中将值添加到列表框之前,如何检查列表框中是否已存在值_C#_Asp.net_.net_Listbox - Fatal编程技术网

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

C# 在asp.net中将值添加到列表框之前,如何检查列表框中是否已存在值,c#,asp.net,.net,listbox,C#,Asp.net,.net,Listbox,如何检查该值是否已存在于列表框中,以避免重复 我已经在服务器端列表框中添加了一些值,当我添加到列表中时,会得到更多的重复项 如何避免重复 lst_Viewers.Items.Add(reader["Name"].ToString()); 或 另一种方法是将所有值插入列表,然后仅在循环后添加项,使用.Distinct()仅获取唯一值: List<string> names = new List<string>(); while (reader.Read()) na

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

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

如何避免重复

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


另一种方法是将所有值插入
列表
,然后仅在循环后添加项,使用
.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));
列表名称=新列表();
while(reader.Read())
Name.Add(读卡器[“Name”].ToString())
name.Distinct().ToList().ForEach(name=>lst_Viewers.Items.Add(name));

这样,您就不必在每次迭代中搜索整个下拉列表-更优雅(在我看来)和更高效。

在添加之前是否可以清除列表框?这样您就永远不会得到重复或过期的项目。@abatishchev这不是Murthy想要的。他想在检查重复值之前将项目添加到列表框中。
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));
}
List<string> names = new List<string>();
while (reader.Read())
    names.Add(reader["Name"].ToString())
names.Distinct().ToList().ForEach(name => lst_Viewers.Items.Add(name));