<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

      Prevent duplicate items from being added to a ListBox(防止将重复项添加到 ListBox)
    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的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

                相关文档推荐

                Populate ListBox with a IEnumrable on another thread (winforms)(在另一个线程(winforms)上使用 IEnumrable 填充 ListBox)
                listbox selected item give me quot; System.Data.DataRowViewquot; , C# winforms(列表框选择的项目给我quot;System.Data.DataRowView, C# Winforms)
                Cannot remove items from ListBox(无法从列表框中删除项目)
                Preventing ListBox scrolling to top when updated(更新时防止列表框滚动到顶部)
                Drag and drop from list to canvas on windows phone with MVVM(使用 MVVM 在 Windows 手机上从列表拖放到画布)
                Deselection on a WPF listbox with extended selection mode(具有扩展选择模式的 WPF 列表框上的取消选择)

                  • <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>
                          <tbody id='cfeDp'></tbody>
                        • <small id='cfeDp'></small><noframes id='cfeDp'>