タイトルの名前を付ける方法が正確ではないので、私はそれを近くにしたいと思っています。私のコードは以下の通りです。私が問題を抱えているのは、未払いの残高が0以下の行は印刷されない必要があるということです。しかし、この数学は別の範囲で行われます(私は信じています)。そうすれば、ゼロ以下であれば未払いの残高をプリントアウトしないと言うこともできません。 未払いの残高がゼロ以下の場合にのみ行をCSVファイルに出力するwhile/if/foreach文を作成するにはどうすればよいですか?MVC C#0バランスフィルタを使用したCSVファイルの作成
public IEnumerable<RowViewModel> GetUnpaidRR(int year, type[] types)
{
foreach (var type in types) type.Fees = type.Fees.ToList();
var transactions = _db.Transactions.Where(i => i.Id.Equals(Status.Success.Id));
return _db.Locations
.Include(i => i.Counts)
.Where(i => i.Owner.Report.Completed != null && i.Owner.Report.Id == year && i.Owner.primary == null)
.Select(location => new
{
Id = location.Owner.Report.Id,
Year = location.Owner.Report.year.Name,
Counts = location.Counts.Select(i => new
{
i.Id,
i.Count,
}),
FirstName = location.Owner.FirstName,
LastName = location.Owner.LastName,
paid = transactions.Where(t => t.Id == location.Owner.Report.Id).Select(n => new { n.Amount }).ToList(),
})
.AsEnumerable() // This takes all the transactions that match the selected customer ID
.Select(i => new RowViewModel(types)
{
Id = i.Id.HasValue ? i.Id.Value.ToIdString() : String.Empty,
Year = i.Year,
FirstName = i.FirstName,
LastName = i.LastName,
UnpaidBalance = types.Sum(j => i.Counts.Where(k => k.Id == j.Id).Sum(k => k.Count * j.Fees.Where(p => p.Id == year).Select(p => p.Cost).SingleOrDefault())) - i.paid.Sum(j => j.Amount),// this does all the math, takes the amount charged, subtracts the amount paid and produces the balance. If this is zero or less, I don't want the row to be printed.
});
}
簡単な質問:あなたの最後の '選択 'の後ろに' Where'を追加することはできませんか? –
はい...はい私はできます...ありがとう、今私は愚かな笑を感じる。 – BlowFish