C# 如何在IEnumarable中写入多个IF条件
请告诉我我提到的退货类型:C# 如何在IEnumarable中写入多个IF条件,c#,C#,请告诉我我提到的退货类型: public IEnumerable<EMS_BUSINESSTYPE_MASTER> CustomerType(int Cust) { if (Cust == 1) { var x = (from n in db.EMS_BUSINESSTYPE_MASTER where n.BUSINESSTYPE_ID == 1 select n).ToList();
public IEnumerable<EMS_BUSINESSTYPE_MASTER> CustomerType(int Cust)
{
if (Cust == 1)
{
var x = (from n in db.EMS_BUSINESSTYPE_MASTER
where n.BUSINESSTYPE_ID == 1
select n).ToList();
}
else
{
var x = from n in db.EMS_BUSINESSTYPE_MASTER
select n;
}
return x;
}
这里,如果我提供return x,我将得到一个错误。正如前面指出的,x的定义级别不是return语句可以达到的。所以我们把它移到了它自己的定义中,并确保else块。ToList是结果。希望这有帮助
public List<EMS_BUSINESSTYPE_MASTER> CustomerType(int Cust)
{
List<EMS_BUSINESSTYPE_MASTER> x = new List<EMS_BUSINESS_TYPE>();
if (Cust == 1)
{
x = (from n in db.EMS_BUSINESSTYPE_MASTER
where n.BUSINESSTYPE_ID == 1
select n).ToList();
}
else
{
x = (from n in db.EMS_BUSINESSTYPE_MASTER
select n).ToList();
}
return x;
}
我建议采取如下方法 将x设置为其中一种情况,然后如果满足if条件,则会重新分配该情况的特定结果,即业务类型为1
public IEnumerable<EMS_BUSINESSTYPE_MASTER> CustomerType(int Cust)
{
var x = db.EMS_BUSINESSTYPE_MASTER; // no need for the `select`
if (Cust == 1)
{
x = x.Where(z => z.BUSINESSTYPE_ID == 1);
}
return x;
}
这之所以有帮助,是因为C中的作用域是如何工作的。在原始代码中的if和else之外,x实际上并不存在。通过在if之前声明x变量,它甚至存在于if之外。x的外观未定义it@marc_s我的x没有犯错误db.EMS\u BUSINESSTYPE\u MASTER where Cust!=1 | | n.BUSINESSTYPE_ID==1选择n.ToList;?只需将if语句之外的x声明为IEnumerable或使用return from…我强烈怀疑这是您收到的错误消息-请发布您收到的具体完整的错误消息,谢谢!无需编写新列表,因为变量在所有分支中都是初始化的。我建议将IEnumerable保留为返回类型,而不是.ToList在x赋值上。是否可以将else简化为x=db.EMS\u BUSINESSTYPE\u MASTER.ToList@miWills我如何编写else条件在这个场景@cooo中你不需要else条件,因为我在if之前的代码与你当前的else相同。但是,如果您确实需要它用于其他场景,那么您将完全按照if-you以相同的方式分配给x。