我有一段代码:
foreach(var statusDetail in statusDetails)
{
foreach(var status in statuses)
{
if (statusDetail.Id == status.Id)
{
statusDetail.Name=status.Name;
}
}
}
其中状态详细信息和状态是列表。
有人能帮我在linq lambda表达式中转换这个吗。我尝试了所有可能的方法,但每次都被卡住了。
statusDetails.ForEach(statusDetail => statusDetail.Name = statuses.FirstOrDefault(status => status.Id == statusDetail.Id)?.Name ?? statusDetail.Name);
但是,如果状态中有更多匹配元素,则结果并不完全相同。但是我假设您想要第一个匹配的元素,否则您需要使用LastOrDefault((而不是FirstOrDefault(