从select linq查询赋值,不更新列表

本文关键字:更新 列表 赋值 select linq 查询 | 更新日期: 2023-09-27 18:08:15

查询如下:-

   labRequestItem.LabTest.Select(p=>p.LabTestICDCodes= labRequests.ICDCodes.Select(t => new ICDCodeList()
                                    {
                                        ICDCodeId = t.ICDCodeId,
                                        ICDCode = t.ICDCodeName,
                                        ICDDescription = t.ICDDescription,
                                        ICDCodeType = t.ICDCodeType
                                    }).ToArray());

现在的问题是LabTestICDCodes没有使用从选择语句

从select linq查询赋值,不更新列表

返回的新列表值进行更新

我已经在Linqpad中进行了测试,以下内容应该有效,但请注意:

  • finalResult将是具有新值/修改值的type of LabTestICDCodes(其本身也是IEnumerable(的List,因为这是唯一投影的列。您必须投影您想要的整个对象,因此,值将按预期修改

    var finalResult =
    labRequestItem.LabTest.Select(p=>p.LabTestICDCodes= labRequests.ICDCodes.Select(t => new ICDCodeList()
                                    {
                                        ICDCodeId = t.ICDCodeId,
                                        ICDCode = t.ICDCodeName,
                                        ICDDescription = t.ICDDescription,
                                        ICDCodeType = t.ICDCodeType
                                    }).ToArray()).ToList();
    

我找到了解决这个问题的唯一方法,通过做以下步骤:-

1.获取本地变量中的值

 var icdList = labRequests.ICDCodes.Select(t => new ICDCodeList()
                                        {
                                            ICDCodeId = t.ICDCodeId,
                                            ICDCode = t.ICDCodeName,
                                            ICDDescription = t.ICDDescription,
                                            ICDCodeType = t.ICDCodeType
                                        }).ToArray();        
  1. 现在通过usinf-foreach循环分配值
foreach (var test in labRequestItem.LabTest)
                                    {
                                        test.LabTestICDCodes = icdList;
                                    }

在最后一步中,我必须使用foreach循环,如果有其他解决方案,那么请回复,否则我将使用与上面提到的相同的内容。