我有一个包含“所有者”的列表。我需要检查当前用户是否是所有者。 所以我尝试了: (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个项目是微优化的。但是,您可以将其替换为 HashSet<string>
:
HashSet<string> owners = new HashSet<string>(lstOwners, StringComparer.OrdinalIgnoreCase);
bool isOwner = owners.Contains(Owner);
HashSet<T>
类提供高性能的集合操作。集合是不包含重复元素的集合,其元素没有特定的顺序。
关于c# - 验证字符串是否存在于列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17836779/