0

2 つのリストがあります。1 つは のリストで、もう 1 つはプロパティ付きのEquipmentリストです。リスト内のプロパティには、水和された値の 1 つだけがあります。水和物との2 つのプロパティがあります。の単一レコードの値でを水和したいWorkflowItemsEquipmentEquipmentList<WorkflowItem>ProcessIdList<Equipment>ProcessIdNameList<WorkflowItem>.Equipment.NameEquipmentList<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());
4

2 に答える 2