<i id='DSx3Q'><tr id='DSx3Q'><dt id='DSx3Q'><q id='DSx3Q'><span id='DSx3Q'><b id='DSx3Q'><form id='DSx3Q'><ins id='DSx3Q'></ins><ul id='DSx3Q'></ul><sub id='DSx3Q'></sub></form><legend id='DSx3Q'></legend><bdo id='DSx3Q'><pre id='DSx3Q'><center id='DSx3Q'></center></pre></bdo></b><th id='DSx3Q'></th></span></q></dt></tr></i><div id='DSx3Q'><tfoot id='DSx3Q'></tfoot><dl id='DSx3Q'><fieldset id='DSx3Q'></fieldset></dl></div>

    <bdo id='DSx3Q'></bdo><ul id='DSx3Q'></ul>

      <legend id='DSx3Q'><style id='DSx3Q'><dir id='DSx3Q'><q id='DSx3Q'></q></dir></style></legend>
    1. <tfoot id='DSx3Q'></tfoot>

    2. <small id='DSx3Q'></small><noframes id='DSx3Q'>

      防止将重复项添加到 ListBox

      时间:2023-10-06
    3. <small id='11fh9'></small><noframes id='11fh9'>

      <tfoot id='11fh9'></tfoot>

    4. <legend id='11fh9'><style id='11fh9'><dir id='11fh9'><q id='11fh9'></q></dir></style></legend>

          <tbody id='11fh9'></tbody>

          • <i id='11fh9'><tr id='11fh9'><dt id='11fh9'><q id='11fh9'><span id='11fh9'><b id='11fh9'><form id='11fh9'><ins id='11fh9'></ins><ul id='11fh9'></ul><sub id='11fh9'></sub></form><legend id='11fh9'></legend><bdo id='11fh9'><pre id='11fh9'><center id='11fh9'></center></pre></bdo></b><th id='11fh9'></th></span></q></dt></tr></i><div id='11fh9'><tfoot id='11fh9'></tfoot><dl id='11fh9'><fieldset id='11fh9'></fieldset></dl></div>

              <bdo id='11fh9'></bdo><ul id='11fh9'></ul>
              • 本文介绍了防止将重复项添加到 ListBox的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                问题描述

                我有这段代码用于将所选项目从一个 ListBox 添加到另一个.如何防止用户两次添加项目?我希望他们添加到 lstBoxToUserProjectsListBox 只包含不重复条目的不同项目.

                I have this code for adding selected items from one ListBox to another. How can I prevent the user from adding an item twice? I want the ListBox they are adding to lstBoxToUserProjects to only contain distinct items with no duplicate entries.

                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),那么你可以做一个简单的检查来看看项目是否被提议for selection 已经在目的地:

                If you bind the lstBoxToUserProjects list box to a datasource (HashSet) then you could do a simple check to see if the item proposed for selection was already in the destination:

                foreach(ListItem itemToAdd in itemsToAdd)
                {
                    if (selectedItems.Contains(itemToAdd)) continue;
                    lstBoxToUserProjects.Items.Add(itemToAdd);
                }
                

                请注意,我建议使用 HashSet,因为这样您就可以对集合进行性能检查,而必须枚举 List 以检查匹配项.

                Note I'm proposing a HashSet because then you can do a performant check on the set whereas a List would have to be enumerated to check for a match.

                这篇关于防止将重复项添加到 ListBox的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                上一篇:如何快速选择 ListBox 中的所有项目? 下一篇:WPF ListBox 按钮选定项

                相关文章

                  • <bdo id='cfeDp'></bdo><ul id='cfeDp'></ul>
                  <legend id='cfeDp'><style id='cfeDp'><dir id='cfeDp'><q id='cfeDp'></q></dir></style></legend>
                    <i id='cfeDp'><tr id='cfeDp'><dt id='cfeDp'><q id='cfeDp'><span id='cfeDp'><b id='cfeDp'><form id='cfeDp'><ins id='cfeDp'></ins><ul id='cfeDp'></ul><sub id='cfeDp'></sub></form><legend id='cfeDp'></legend><bdo id='cfeDp'><pre id='cfeDp'><center id='cfeDp'></center></pre></bdo></b><th id='cfeDp'></th></span></q></dt></tr></i><div id='cfeDp'><tfoot id='cfeDp'></tfoot><dl id='cfeDp'><fieldset id='cfeDp'></fieldset></dl></div>

                    <tfoot id='cfeDp'></tfoot>
                  1. <small id='cfeDp'></small><noframes id='cfeDp'>