C# Lambda表达式中的Switch语句
我的HomeController中有以下代码:C# Lambda表达式中的Switch语句,c#,lambda,switch-statement,C#,Lambda,Switch Statement,我的HomeController中有以下代码: public ActionResult\u Read([DataSourceRequest]DataSourceRequest请求){ var result=新数据源结果(); 使用(var context=new GPEContext()){ var filterzzz=context.TelefonUndAbwesends.Where(p=>!p.Name.Contains(“zzz”); IQueryabletelListe=filterzz
public ActionResult\u Read([DataSourceRequest]DataSourceRequest请求){
var result=新数据源结果();
使用(var context=new GPEContext()){
var filterzzz=context.TelefonUndAbwesends.Where(p=>!p.Name.Contains(“zzz”);
IQueryabletelListe=filterzzz;
结果=telListe.ToDataSourceResult(请求);
返回Json(结果);
}
}
如何在filterzzz变量之外使用switch语句?我有多个p状态切换场景:
开关(p.Status){
案例“0”:
p、 Status=“Abwesend”;
打破
案例“1”:
p、 Status=“Anwesend”;
打破
案例“2”:
p、 Status=“暂停”;
打破
案例“3”:
p、 Status=“Dienstgang”;
打破
案例“4”:
p、 Status=“内政部”;
打破
违约:
p、 地位=”;
打破
}
我得到了答案。多亏了这篇文章
谢谢各位。你们的意思是想在
结果
中映射状态
?通过结果
在内映射吗?该代码块不需要进入linq语句,感谢您的快速响应@juharr->是,我想在结果中映射状态。我需要过滤名称和状态。我把它和变量过滤器中的名字一起归档了。哎哟,太难看了。我会制作一个模型,您可以设置状态,开关的逻辑位于一个名为“StatusDescription”或类似的只读属性中。或者只是使用添加的属性扩展TelefonUndAbwesend。
var filterzzz = context.TelefonUndAbwesends.Where(p => !p.Name.Contains("zzz"))
.Select(
delegate (TelefonUndAbwesend p)
{
var switchedList = new TelefonUndAbwesend
{
Name = p.Name,
Abteilung = p.Abteilung,
Durchwahl = p.Durchwahl,
Kürzel = p.Kürzel
};
switch (p.Status)
{
case "0":
switchedList.Status = "Abwesend";
break;
case "1":
switchedList.Status = "Anwesend";
break;
case "2":
switchedList.Status = "Pause";
break;
case "3":
switchedList.Status = "Dienstgang";
break;
case "4":
switchedList.Status = "Home Office";
break;
default:
switchedList.Status = "";
break;
}
return switchedList;
}).AsQueryable();