C# Lambda表达式中的Switch语句

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

我的HomeController中有以下代码:

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();