繁体   English   中英

Lambda 表达式中的 Switch 语句

[英]Switch Statement in Lambda Expression

我的 HomeController 中有以下代码:

public ActionResult Phones_Read([DataSourceRequest] DataSourceRequest request) {
  var result = new DataSourceResult();           
  using (var context = new GPEContext()) {
    var filterzzz = context.TelefonUndAbwesends.Where(p => !p.Name.Contains("zzz"));
    IQueryable < TelefonUndAbwesend > telListe = filterzzz;                    
    result = telListe.ToDataSourceResult(request);                                    
    return Json(result);
  }
}

如何在 filterzzz 变量之外使用 switch 语句? 我有多个 p.Status 的切换场景:

switch(p.Status) {
  case "0":
    p.Status = "Abwesend";
    break;
  case "1":
    p.Status = "Anwesend";
    break;
  case "2":
    p.Status = "Pause";
    break;
  case "3":
    p.Status = "Dienstgang";
    break;
  case "4":
    p.Status = "Home Office";
    break;
  default:
    p.Status = "";
    break;
} 

我得到了答案。 感谢这篇文章。 点击

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

谢谢你们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM