それぞれ独自のモデルを持つ2つのテーブルがあります...
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;}
}
name
...そして、すべての FamilyMans をとに基づいて一致する BusinessMans に一致させたいと考えていますfav_color
。
私は現在、次のようなものを持っています:
//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;
}
}
}
しかし、完了するまでにかなりの時間がかかります。
また、 a を使用して 1 つのリストをループし、foreach
LINQ の FirstOrDefault を使用してそれらを照合することも検討しましたが、効率はほぼ同じようです。
FamilyMan
s とs を一緒に一致させるより良い方法はありBusinessMan
ますか?