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

如何让ListView中的Searchbox实现不区分大小写的过滤功能?

ListView 不区分大小写的搜索过滤实现

你当前的ListView过滤逻辑区分大小写,要实现不区分大小写的匹配,只需要修改过滤条件里的文本比较逻辑,以下是两种常用可行方案:

方案1:统一转换为大写/小写进行比较

将列表项文本和搜索框输入文本都转换为大写(或小写)后再判断包含关系,就能忽略大小写差异。

修改后的filterbox_TextChanged事件代码:

private void filterbox_TextChanged(object sender, EventArgs e)
{
    listView1.Items.Clear();   // 清空当前显示项
    if (string.IsNullOrEmpty(filterbox.Text))
    {
        listView1.Items.AddRange(allItems.ToArray());  // 无搜索内容时显示全部项
        return;
    }
    // 统一转换为大写,实现不区分大小写过滤
    string searchText = filterbox.Text.ToUpper();
    var filteredItems = allItems
                       .Where(x => x.SubItems
                                     .Cast<ListViewItem.ListViewSubItem>()
                                     .Any(y => y.Text.ToUpper().Contains(searchText)))
                       .ToArray();
    listView1.Items.AddRange(filteredItems);
}

方案2:使用StringComparison枚举(更推荐)

直接调用string.Contains的重载方法,传入StringComparison.OrdinalIgnoreCase参数,无需手动转换大小写,代码更简洁且性能更优(该重载支持.NET Core 2.0+/.NET 5+版本)。

修改后的代码:

private void filterbox_TextChanged(object sender, EventArgs e)
{
    listView1.Items.Clear();   // 清空当前显示项
    if (string.IsNullOrEmpty(filterbox.Text))
    {
        listView1.Items.AddRange(allItems.ToArray());  // 无搜索内容时显示全部项
        return;
    }
    // 使用不区分大小写的比较规则
    string searchText = filterbox.Text;
    var filteredItems = allItems
                       .Where(x => x.SubItems
                                     .Cast<ListViewItem.ListViewSubItem>()
                                     .Any(y => y.Text.Contains(searchText, StringComparison.OrdinalIgnoreCase)))
                       .ToArray();
    listView1.Items.AddRange(filteredItems);
}

补充说明

  • 两种方案都能实现需求,方案2更符合.NET的API设计规范,避免了不必要的字符串转换操作。
  • 建议把原代码中的filterbox.Text == ""替换为string.IsNullOrEmpty(filterbox.Text),能同时处理空字符串和null的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 12:52:26