C# 为什么我会犯错误;并非所有代码路径都返回一个值";对于这个布尔方法

C# 为什么我会犯错误;并非所有代码路径都返回一个值";对于这个布尔方法,c#,class,methods,boolean,C#,Class,Methods,Boolean,我正在尝试创建一个类方法,用于检查名为“IngreditList”的列表,以查看它是否包含项目。我认为这与else语句“returnfalse”有关。这是我代码的一部分 public bool CheckIfCitrus() { foreach (string ing in IngredientList) { if ((ing.ToLower() == "lime peel

我正在尝试创建一个类方法,用于检查名为“IngreditList”的列表,以查看它是否包含项目。我认为这与else语句“returnfalse”有关。这是我代码的一部分

         public bool CheckIfCitrus()
        {
            foreach (string ing in IngredientList)
            {
                if ((ing.ToLower() == "lime peel") | (ing.ToLower() == "orange peel"))
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
        }
在任何情况下,你都必须归还一些东西

像这样设置默认值是可行的。

问题就在这里

你处理了所有的if条件。但在每个循环的
内。

只有当IngredientList至少有一个条目时,您才会进入循环,因为您只在循环内返回。如果
IngredientList
为空,会发生什么情况?想想看,你就知道答案了。另外,如果IngCreditList第一项包含“巧克力”,第二项包含“莱姆皮”,那么它将返回false,这可能不是你想要的。
public bool CheckIfCitrus()
    {
        foreach (string ing in IngredientList)
        {
            if ((ing.ToLower() == "lime peel") | (ing.ToLower() == "orange peel"))
            {
                return true;
            }
        }
        
        return false;
    }