0
私は次のような状況があります。この場合、ネストされたオブジェクトを平坦化し、親と子のオブジェクトを作成するのではなく、1行で親と子のフィールドを結合します。ネストされたクラスの照会と結合
また、v1とv2を結合したいと考えています。何かアドバイス?
あなたは次のように実行する必要がありpublic class Person
{
public string idPerson;
public string names;
private List<Subject> subjects = new List<Subject>();
private List<MedicalRecord> medicalRecords = new List<MedicalRecord>();
}
public class Subject
{
public string subjectName;
public string subjectId;
}
public class MedicalRecord
{
public int recordId;
public string doctorName;
public string medicalCare;
}
void main()
{
/// Assume that Person is filled.
/// How can I join the two lists?
List<Person> all = new List<Person>();
var v1 = all.SelectMany(p => p.subjects, (child, parent) => new { child, parent });
var v2 = all.SelectMany(p => p.medicalRecords, (child, parent) => new { child, parent }); /// here i want to select all fields instead of objects to avoid child and parent calling from below cycle.
/// I want to join v1 and v2 and flatten the lists.
foreach(var obj in v1)
{
Console.WriteLine(obj.child.subjectName + " " + obj.parent.idPerson);
}
///
}
ですから、{件名人、MedicalRecord}の平坦化されたリストで終わるしたい、しかし、人は複数の被験者と医療記録を持っています、グループ分けはどのように見えますか?医療記録よりも科目が多い場合、またはその逆の場合はどうなりますか?選択肢はありますか? –
私は、人物ID – jrpz
によって2つのリストに参加して、alフィールドを平らにしたいと思います。まず、すべてのフィールドをとっておきたいので、 'var v2 = all.medicalRecords'を試してみてください。それらを結びつけるために、linqの 'join'を' on v1.idPerson equals v2.idPerson'と使うだけの特別な理由はありますか? –