【问题标题】:How to avoid multiple conditions in C# [duplicate]如何避免C#中的多个条件[重复]
【发布时间】:2021-04-14 18:51:40
【问题描述】:

请告诉我如何避免 C# 中的多个条件。

这是我的代码:-

 private static bool CheckForConverted(string policynumber)
    {
        string[] prefix = { "0", "1", "2", "3", "4" };

        if (policynumber.StartsWith("0") || policynumber.StartsWith("1") || policynumber.StartsWith("2") || policynumber.StartsWith("3") || policynumber.StartsWith("4"))
        {
            return true;
        }

        return false;
    }

【问题讨论】:

  • 使用数组然后做array.Any(a => a == true)
  • 您可以使用正则表达式。 ^[0-4] 会这样做。
  • 你能建议我在我的情况下如何使用数组来应用它吗?
  • @Marshal 确实,这就是我要说的。副本很容易理解并适用于这个问题。
  • @mackie haha​​,昨天没来得及写完整答案。

标签: c# asp.net .net


【解决方案1】:
private static bool CheckForConverted(string policynumber)
{
    string[] prefix = { "0", "1", "2", "3", "4" };
    return policynumber != null && prefix.Any(e => policynumber.StartsWith(e));        
}

或者你可以使用方法组语法

    private static bool CheckForConverted(string policynumber)
    {
        string[] prefix = { "0", "1", "2", "3", "4" };
        return policynumber != null && prefix.Any(policynumber.StartsWith);
    }

【讨论】:

  • 有人能解释一下反对票吗?
  • 非常感谢您的帮助,效果很好
【解决方案2】:

对于你的前缀数组,它应该很简单:

private static bool CheckForConverted(string policynumber)
{
    string[] prefix = { "0", "1", "2", "3", "4" };
    return prefix.Any(pr => policynumber.StartsWith(pr))
}

这使用了 LINQ 的 Any 方法,该方法已经返回布尔值,所以你不需要 if-else。

【讨论】:

  • 非常感谢您的帮助,效果很好
猜你喜欢
  • 2019-03-27
  • 1970-01-01
  • 2020-08-12
  • 2018-04-11
  • 1970-01-01
  • 1970-01-01
  • 2014-04-15
  • 2014-01-07
  • 1970-01-01
相关资源
最近更新 更多