查询是这样的: -
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语句返回的新列表值进行更新
答案 0 :(得分:2)
我已在Linqpad
进行了测试,以下工作正常,但请注意:
finalResult
将List
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();
- 现在通过usinf foreach循环分配值。
醇>
foreach (var test in labRequestItem.LabTest)
{
test.LabTestICDCodes = icdList;
}
在最后一步,我必须使用foreach循环,如果有任何其他解决方案 请回复,否则我将使用与上述相同的内容。