J'ai deux tables, chacun avec leur propre modèle ...correspondants deux listes de différents types ensemble
class FamilyMan
{
public int family_ID {get; set;}
public string name {get; set;}
public string fav_color {get; set;}
}
class BusinessMan
{
public int work_ID {get; set;}
public string name {get; set;}
public string fav_color {get; set;}
//unrelated data etc
public string job_title {get; set;}
}
... et je veux être en mesure de faire correspondre tous FamilyMans aux businessmans correspondants basés sur name
et fav_color
.
J'ai actuellement quelque chose comme:
//fill lists from database
var family_list = dbContext.FamilyMen.ToList();
var busy_list = dbContext.BusinessMen.ToList();
//create empty dict for matching the two types
var matches = new Dict<FamilyMan, BusinessMan>();
foreach (FamilyMan fam_man in family_list) {
foreach (BusinessMan busy_man in busy_list) {
//if both names and colors match, consider them a matching
//object and add them each to the dict
if (fam_man.name == busy_man.name &&
fam_man.color == busy_man.color) {
matches_MtO[fam_man] = busy_man;
}
}
}
mais il faut un certain temps pour terminer.
J'ai également regardé en boucle sur une liste avec un foreach
, puis en utilisant LINQs FirstOrDefault pour les faire correspondre, mais l'efficacité semble à peu près la même.
Existe-t-il une meilleure façon d'associer FamilyMan
s et BusinessMan
s?
J'ai dû ajouter des noms correspondants aux deux premiers objets anonymes,' Name' et 'Color', respectivement, et cela a semblé fonctionner instantanément. Cela fonctionne très bien, je vais donner à @Gerve une minute pour corriger sa requête afin de résoudre le problème 'Expression Expected' si c'est possible, sinon j'accepterai cette réponse. Merci! – TankorSmash
"noms correspondants" étant quelque chose comme 'new {Name = nom_bm, Color = bm.color}' pour les deux objets. À partir des documents que vous avez liés: 'Par exemple, si la table Orders et la table OrderDetails utilisent chacune des noms différents pour leurs colonnes, vous pouvez créer des clés composées en attribuant des noms identiques aux types anonymes:' Merci encore! – TankorSmash