从select linq查询中分配值而不更新列表

时间:2016-09-21 09:00:15

标签: c# linq

  

查询是这样的: -

   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语句返回的新列表值进行更新

2 个答案:

答案 0 :(得分:2)

我已在Linqpad进行了测试,以下工作正常,但请注意:

  • finalResultList type of LabTestICDCodes {再次IEnumerable本身),其中包含新值/修改后的值,因为它是唯一的列预计。您必须投影所需的整个对象,值将按预期进行修改

    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 :(得分:0)

  

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

     

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循环分配值。
  2.   
foreach (var test in labRequestItem.LabTest)
                                    {
                                        test.LabTestICDCodes = icdList;
                                    }
  

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