2 つのリストがあります。1 つは のリストで、もう 1 つはプロパティ付きのEquipment
リストです。リスト内のプロパティには、水和された値の 1 つだけがあります。水和物との2 つのプロパティがあります。の単一レコードの値でを水和したいWorkflowItems
Equipment
Equipment
List<WorkflowItem>
ProcessId
List<Equipment>
ProcessId
Name
List<WorkflowItem>.Equipment.Name
Equipment
List<Equipment>
以下のこの LINQ クエリは、基本的に探していることを実行する一般的なアイテムを選択しますが、元のリストに入力するだけです。
var list = from item in workflowItems
join equipment in barcodeEquipmentList on
item.Equipment.ProcessId equals equipment.ProcessId
select new
{
ProcessId = item.Equipment.ProcessId,
EquipmentName = equipment.Name
};
編集 リストは比較的小さくなりますが、このようなことをしても問題ありません(これが機能しないという事実は別として)
workflowItems.ForEach(x => x.Equipment = from e in barcodeEquipmentList
where e.Process.Id == x.Equipment.Process.Id
select e
);
...最終編集
しかし、これはうまくいきます:
workflowItems.ForEach(x => x.Equipment = barcodeEquipmentList
.Where(e => e.Process.Id == x.Equipment.Process.Id)
.FirstOrDefault());