验证列表中是否存在字符串

本文关键字:存在 字符串 是否 列表 验证 | 更新日期: 2023-09-27 18:24:39

我有一个包含"所有者"的列表。我需要检查当前用户是否为所有者。所以我尝试了:(list.Contains(string)):

    string Owner = user.Name.ToString();
    if (lstOwners.Contains(Owner))
    {
        btnManager.Visible = true;
    } //does not work.

它不起作用!!

但当我这样做的时候它是有效的:

    if (lstOwners.Contains("BRJesusCA2"))
    {
        btnManager.Visible = true;
    }

你能告诉我为什么吗??

所有者和"BRJesusCA2"具有相同的值!

验证列表中是否存在字符串

C#区分大小写

bool contains = lstOwners.Contains(Owner, StringComparer.OrdinalIgnoreCase);
btnManager.Visible = contains;

既然你要求一个更高效的集合。有90个项目是mirco优化。但是,您可以将其替换为HashSet<string>:

HashSet<string> owners = new HashSet<string>(lstOwners, StringComparer.OrdinalIgnoreCase);
bool isOwner = owners.Contains(Owner);

HashSet<T>类提供高性能的集合操作。集合是一个不包含重复元素的集合,并且其元素不按特定顺序排列。