私は LINQ に慣れていないので、読まなければならないコードに問題があります。コードを説明してくれる人を探しているのではなく、知りたいのですが:
まず、これについて知るのに適切な検索用語は何ですか。つまり、複数の Select ステートメントがある場合、それを何と呼びますか。私の直感では、これは内部結合ですが、この LINQ 構文には詳しくありません。
第二に、いくつかの参考文献を教えてもらえますか? 試してみましたが、適切な検索用語を思いつくことができないために制限されていると思います。シンプルな from where select ステートメント、または内部結合ステートメントを考え出します。
コード:
var matchingReading = (from myo in _database.SessionDatabaseObject.Nations ?? new List<Nation>()
where myo.ReportAbbreviation.ToLower() == nationReportAbbr.ToLower()
select (from side in _database.SessionDatabaseObject.Sexes
where sex.Name.ToLower() == sexReportAbbr.ToLower()
select (from recSite in _database.SessionDatabaseObject.RecordingSites
where recSite.NationId == myo.Id
where recSite.SexId == sex.Id
select
(from harnCh in _database.SessionDatabaseObject.Interviewers
where harnCh.RecordingSiteId == recSite.Id
select
(from reading in
_database.SessionDatabaseObject.Readings
where reading.InterviewerId == harnCh.Id
where reading. RunEventId == _entry.Id
select reading))))).ToList();
if (!matchingReading.Any() ||
!matchingReading.First().Any() ||
!matchingReading.First().First().Any() ||
!matchingReading.First().First().First().Any() ||
!matchingReading.First().First().First().First().Any())
return "";
float? height = matchingReading.First().First().First().First().First().Height;
return height.HasValue ? ((int)Math.Floor(height.Value)).ToString() : "";