有没有更有效的方法在C#中的文本中从ListBox中搜索文本?

问题描述 投票:0回答:1

我正在使用 Windows 窗体和 C#。我有一个包含超过 200,000 个项目的列表框。

我有一个很长的字符串,我想找到这 200,000 个项目中的哪一个出现在该字符串中。

我写了这段代码,但我想知道是否有更好的方法来编写它:

string Codes = "";

foreach (string itm in lbxCodes.Items)
{
    if (Result.Contains(itm))
    { 
        Codes = Codes + "," + itm;
    }
}

return Codes;
c# string listbox
1个回答
0
投票

改进字符串处理的两个版本:

字符串生成器

StringBuilder codes = new();

foreach (string itm in lbxCodes.Items)
{
    if (Result.Contains(itm))
    { 
        codes.Append(",").Append(itm);
    }
}

return codes.ToString();

注意,这并不能修复问题的原始代码中也存在的“前导逗号”错误。

List<string>
+
string.Join

List<string> codes = new();

foreach (string itm in lbxCodes.Items)
{
    if (Result.Contains(itm))
    { 
        codes.Add(itm);
    }
}

return string.Join(",",codes);

但正如评论中已经提到的:首先将 200k 搜索项保留在 UI 组件中可能是一个低于标准的想法。所以,也许您想重新考虑整个方法。但这将是一个不同的问题。

© www.soinside.com 2019 - 2024. All rights reserved.