Idプロパティが2番目のセットに含まれるセットからすべての要素を選択する必要があります。これを達成するために "SelectMany()"を使用できますか?このタイプのマッチング問題の最も効率的な最適解は何ですか?SelectMany()を使用するか、LINQ(ドット構文)で2つのシーケンスの要素を一致させる
例: 結合エンティティセットを使用して、指定されたReportIdのすべてのDateRangeIdsを選択します。
セット:
- レポート {ReportId、REPORTNAME}
- ReportDateRanges {DateRangeId、ReportId、ReportDateRangeId}
- DateRanges {DateRangeId、DateRangeName}
私の解決策のコードはここにあります。これは適切なアプローチであれば、私はわからないですが、これは私が説明してきた問題解決を行います。
var report = Reports.Take(1).FirstOrDefault();
int reportId = Convert.ToInt32(report.Id);
var dateRangeIds = ReportDateRanges.Where(rdr => rdr.ReportId == reportId).OrderBy(it => it.DateRangeId).Select(it => it.DateRangeId);
var dateRanges = DateRanges.Where(dateRange => dateRangeIds.Contains(dateRange.Id));
LINQの専門家を、このコードを批評し、任意の提案を提供すること自由に感じなさい。助けてくれてありがとう!
ここ