を追加する場合、私は働く、それ以下のコードを持っている:リスト、アップデートが見つかりましたが、そうでない場合
List<XXTJobTableModel> xjobs = filexxts.GroupBy(x=> x.job)
.Select(fx => new JobTableModel
{
job_no = fx.First().job,
emps = fx.GroupBy(x=>x.emp_id).Select(x => new EmployeeTableModel
{
eid = x.First().emp_id,
heds = x.GroupBy(h => h.HED).Select(h => new HEDModel
{
hed = h.First().HED,
hours = h.Sum(c => c.HOURS),
amt = h.Sum(c => c.AMOUNTRATE)
}).ToList()
}).ToList()
}).ToList();
public class JobTableModel
{
public string job_no { get; set; }
public List<EmployeeTableModel> emps { get; set; }
}
public class EmployeeTableModel
{
public string emp_id { get; set; }
public List<HEDModel> heds { get; set; }
}
public class THEDModel
{
public string hed { get; set; }
public decimal hours { get; set; }
public decimal amt { get; set; }
}
私はすでに別のデータソースからロードされた別のList<XXTJobTableModel> yjobs
を持っています。私がやりたい何job_noがyjobsに見つからない場合、その後、yjobsに(従業員と彼のデータで)ジョブを追加。 job_noはyjobsで発見され、そしてEMP_IDは、そのジョブに従業員(およびHEDデータ)を追加し、そのジョブのEmployeeテーブルに見つからない場合。その仕事に従業員が見つかった場合、従業員リストにHEDデータを追加するだけです。
私は何とかxjobsとyjobsをマージしたり、私が直接yjobsリストにxjobsをロードした場合場合、私は好みを持っていません。
おかげ
よりconsiseまたはより高性能オプションがあった場合、私は間違いなくループ、私は思っていた可能性があります。 – RememberME
通常あり、このようなもののためのより良いパフォーマンスのオプションですが、私はそれを右に、より良い、より高速な方法を行う方法を見つけ出す、その後、最初に動作するように何かを得るためのアプローチに従う傾向があります。 –