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

如何在C# ListBox中为选中项交替插入IZ+20与IZ-20条目?

解决方案

要实现为选中条目交替插入指定文本的需求,你可以按以下方式修改代码:

核心思路

  1. 仅处理选中条目:直接针对已选中的条目操作,而非遍历所有X开头的条目
  2. 倒序处理索引:避免插入新条目后导致后续条目索引偏移,保证插入位置准确
  3. 交替文本控制:用计数器判断奇偶性,实现IZ+20 R0 FMAX和IZ-20 R0 FMAX的交替插入

修改后的代码

// 获取所有选中条目的索引,按从大到小排序(避免插入操作打乱后续索引)
var selectedIndices = listBox1.SelectedIndices.Cast<int>().OrderByDescending(i => i).ToList();
int insertCounter = 0;

foreach (int idx in selectedIndices)
{
    // 根据计数器奇偶性选择要插入的文本
    string insertText = insertCounter % 2 == 0 ? "IZ+20 R0 FMAX" : "IZ-20 R0 FMAX";
    // 在选中条目的下一个位置插入文本(保证原条目在前,插入内容在后)
    listBox1.Items.Insert(idx + 1, insertText);
    insertCounter++;
}

原代码的问题说明

  • 原代码遍历所有X开头的条目,而非用户指定的已选中条目,会额外处理未选中的X条目
  • 原代码将文本插入到选中条目的位置(SelectedIndex),导致插入内容出现在原条目之前,与期望顺序相反
  • 缺少交替文本的逻辑控制,无法实现两种文本的交替插入

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 09:33:03