用 linq 查找和替换列表的结果

Posted

技术标签:

【中文标题】用 linq 查找和替换列表的结果【英文标题】:find and replace result of a list with linq 【发布时间】:2021-10-01 07:05:46 【问题描述】:

有没有办法在执行 linq 语句后将一个结果的值替换为另一个结果的值? 是在我的 ** Status ** 的 linq 语句中,有一些结果是“PendingForApprover”,但我想用“Pending forapprover”替换它,我希望在获得结果后,你可以使用查找并基于该替换值,之前在我的模型中,我使用带有显示名称的数据注释,但由于该结果我将其转换为 JSON,然后它将由服务器端带来那个方法不行

你分享我的句子 LINQ

  var result = db.document.Select(d => new DocumentViewModel
  
   DocumentId = d.DocumentId,
   Name = w.name
   ReceivedLogs = d.Logs
   Status = w.Status.toString(),
  .Where(l => l.Status == Status.Received)
  .Select(l => new LogViewModel
  
     CurrentApprover = l.User,
     NameApprover = l.User.FullName
  ).FirstOrDefault()
  ).ToList();

谢谢

【问题讨论】:

【参考方案1】:

您是否尝试过Switch expressions,这是一个非常清晰的解决方案,您可以将其集成到您的LINQ 查询中。


Status = w.Status switch

    Status.StatusOne => "Status One",
    Status.PendingForApprover => "Pending for approver",
    _ => "Unknown"


【讨论】:

以上是关于用 linq 查找和替换列表的结果的主要内容,如果未能解决你的问题,请参考以下文章

LINQ比较两个列表并将结果放入一个列表[重复]

使用 LINQ 获取两个比较列表的结果并根据结果更改列表中的属性

将索引字段添加到LINQ列表 使用C#的结果

LINQ to XML 查询不返回任何结果

将 Linq 查询结果转换为字典

如何在python列表中查找某个元素的索引