データベースからデータを取得すると、次の構造になります。グループInputFileId
とFilename
で、最大値を選択するのはFailed
です。Linq C#が最大値に基づく
InputFileId = 12, FileName = "Filename_12", Failed = false
InputFileId = 13, FileName = "Filename_13", Failed = false
InputFileId = 13, FileName = "Filename_13", Failed = true
今、私はこの結果を見てみたい:
InputFileId = 12, FileName = "Filename_12", Failed = false
InputFileId = 13, FileName = "Filename_13", Failed = true
私がこれまで持ってLINQクエリは次のとおりです。
Files = (this.InputFileStatusService.GetFilesUploadedByDay(StartOfDay(SelectedDate), EndOfDay(SelectedDate), this.Deal.Id))
.Where(a => a.InputFileId > 0)
.GroupBy(m => new { m.InputFileId, m.FileName, Failed = m.Failed ? 1 : 0 })
.Select(m => new
{
InputFileId = m.Key.InputFileId,
FileName = m.Key.FileName,
Failed = m.Max(x=>x.Failed)
}).ToList();
しかし、これは誰もが持っていない、動作しませんこれのための解決策?
「最大値を選択してください」とは、trueの場合はTrueを返します。 –
'InputFileId'でグループ化しますか?しかし、あなたが 'InputFileId = 13、FileName = "Filename_13"、Failed = false'ではなく、' InputFileId = 13、FileName = "Filename_13"、Failed = true " –
はい、同じInputFileIdとFilenameに複数の値がある場合は、ファイルが失敗したことを示すだけで、Failedが真である必要があります。 – Walter