c# – 防止将重复项添加到ListBox
发布时间:2020-12-15 04:17:14 所属栏目:百科 来源:网络整理
导读:我有这个代码用于将一个ListBox中的选定项添加到另一个ListBox.如何防止用户两次添加项目?我希望他们添加到lstBoxToUserProjects的ListBox只包含不重复项的不同项. protected void btnAddSelectedItem_Click(object sender,EventArgs e){ ListListItem item
我有这个代码用于将一个ListBox中的选定项添加到另一个ListBox.如何防止用户两次添加项目?我希望他们添加到lstBoxToUserProjects的ListBox只包含不重复项的不同项.
protected void btnAddSelectedItem_Click(object sender,EventArgs e) { List<ListItem> itemsToAdd= new List<ListItem>(); foreach (ListItem listItem in lstbxFromUserProjects.Items) { if (listItem.Selected) itemsToAdd.Add(listItem); } foreach (ListItem listItem in itemsToAdd) { lstBoxToUserProjects.Items.Add(listItem); } } 编辑: protected void btnAddSelectedItem_Click(object sender,EventArgs e) { List<ListItem> itemsToAdd= new List<ListItem>(); foreach (ListItem listItem in lstbxFromUserProjects.Items) { if (listItem.Selected) itemsToAdd.Add(listItem); } foreach (ListItem listItem in itemsToAdd) { if (!lstBoxToUserProjects.Items.Contains(listItem)) { lstBoxToUserProjects.Items.Add(listItem); } } } 解决方法
如果将lstBoxToUserProjects列表框绑定到数据源(HashSet),则可以进行简单检查以查看建议选择的项目是否已在目标中:
foreach(ListItem itemToAdd in itemsToAdd) { if (selectedItems.Contains(itemToAdd)) continue; lstBoxToUserProjects.Items.Add(itemToAdd); } 注意我提出了一个HashSet,因为那时你可以对集合进行高效检查,而必须枚举List来检查匹配. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |