【发布时间】:2020-07-17 08:19:06
【问题描述】:
我有一个输入数字。假设是 545。现在我有例如这个字符串:string trying = "658;984;756;545;2000;5450" 你可以看到这个字符串中有545,但也有5450 我只想找到我的输入号码,即545 但在我当前的代码也找到了5450。我当前的代码:
MySet.MyRole = "658;984;756;545;2000;5450";
if (MySet.MyRole is null || MySet.MyRole.IsEmpty())
{
setupSet.MyRole1 = true;
}
else if (MySet.MyRole.Contains(Number.ToString()))
{
setupSet.MyRole1 = true;
}
【问题讨论】:
-
(";" + MySet.MyRole + ";").Contains(";545;")或MySet.MyRole.Split(';').Contains("545")但是,如果您打算多次对相同的角色进行此检查,您可能应该将其拆分并放入更好的数据结构中,例如 @ 987654329@ 或类似号码。 -
如果先拆分成数组,就不会。我在评论中写的两种方式都不会返回 5450 作为匹配项。我也在第一种情况下寻找周围的分号,第二种情况根本没有这个问题。如果您在循环中执行此操作,这两种方法在性能方面都有缺点,但它们都应该完全按照您的意愿执行。