You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

移除多个选中索引时出错:如何同步删除Password List与MD5 List对应项

多选项同步删除报错解决方案

报错核心原因

你当前使用的升序遍历索引删除逻辑存在索引偏移问题:默认获取的选中索引集合为从小到大升序排列,每删除一个位置靠前的索引后,列表中所有位于该索引之后的元素索引都会自动减1,后续要删除的原始索引会直接失效,要么删错对应项,要么触发索引越界报错。

修复方案

将选中的索引集合先做降序排序,按从大到小的顺序遍历删除即可。先删除位置靠后的大索引,不会影响小索引的对应位置,完全避免索引偏移问题。
以下是常见WinForm/WPF场景下的代码示例:

// 1. 先把选中索引转为可操作的列表
var delIndices = passwordListBox.SelectedIndices.Cast<int>().ToList();
// 2. 对索引按从大到小降序排序
delIndices.Sort((x, y) => y.CompareTo(x));

// 3. 遍历排序后的索引同步删除两个列表的对应项
foreach (int idx in delIndices)
{
    passwordListBox.Items.RemoveAt(idx);
    md5ListBox.Items.RemoveAt(idx);
}

额外注意事项

  • 日常添加项时必须保证两个ListBox的项数完全一致,避免出现数量差导致的索引不匹配
  • 如果项目用了数据源绑定,更建议直接操作共享数据源,两个ListBox分别绑定数据源的密码、MD5字段,删除时直接操作数据源,不用手动维护两个列表的索引同步。

内容的提问来源于stack exchange,提问作者Jordan Maxwell

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.21 08:24:09