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
Post a Comment