c# - Hydrate property via joining another List<Property> on unique Id -


i have 2 lists, 1 list of equipment , 1 list of workflowitems equipment property. equipment property within list<workflowitem> list has 1 of it's values hydrated, processid. list<equipment> has 2 properties hydrated, processid , name. want hydrate list<workflowitem>.equipment.name value single equipment record in list<equipment>

this linq query below select generic item out doing i'm looking for, rather fill in original list.

var list = item in workflowitems            join equipment in barcodeequipmentlist on                               item.equipment.processid equals equipment.processid            select new             {                 processid = item.equipment.processid,                 equipmentname = equipment.name             }; 

edit list going relatively small, doing fine (aside fact this not work)

workflowitems.foreach(x => x.equipment = e in barcodeequipmentlist                                e.process.id == x.equipment.process.id                                select e                            ); 

...final edit

but work:

workflowitems.foreach(x => x.equipment = barcodeequipmentlist                                            .where(e => e.process.id == x.equipment.process.id)                                            .firstordefault()); 

this piece of code should match needs:

public class equipment {     public int processid { get; set; }     public string name { get; set; } }  public class workflowitem {     public equipment { get; set; }      public void loadequipmentfrom(ienumerable<equipment> cache){         var equipment = cache.firstordefault(e => e.processid == equipment.processid);         if(equipment != null)             equipment.name = equipment.name;     } } 

you assign instance cache existing one, wouldn't matter since both must have same identifier equipment = equipment;. easier if have more properties set. optimize further use idictionary<int, equipment> instead of ienumerable<equipment>, because you'll reading collection often.

i'm guessing implementing kind of orm, in case can give advice: "there out there that'll fit needs.".


Comments