linqを使用して特定の条件に基づいて2つのテーブルを結合しています。サマリーテーブルにサマリーテーブルとユーザーテーブルがあります。2つのカラムがあります(isPaid(bit) 。私は、現在の金額の列に前の金額の列を追加するためにisPaidの列をチェックする必要があります。 isPaidがfalseの場合は、前の金額の列を現在の金額の列に追加する必要があります。追加する必要はありません。 私は前の値は、LinqでTakeWhileを使用してチェックします。
var billData = (from summary in billingSummary
join userData in user on summary.parentId equals userData.ParentId
select new MonthlyBilling
{
billAmount = summary.billamount.ToString(),
paymentAmount = billingSummary.TakeWhile(x => (x.ispaid == false) ? (x.billamount + summary.billamount) : summary.billamount).ToString(),
}).ToList();
このクエリを試してみましたが、私はと呼ばれるエラーが暗黙的TakeWhile部にBOOL TO TYPEのDECIMALを変換することはできません取得しています。私はエラーの意味は何かを知っていますが、どこでこのエラーが発生していますか?何か案は?
あなたがしようとしていることを完全にはっきりさせることはできません。あなたの暗黙のif文を買って、TakeWhileに小数点を渡そうとしています。 – esmoore68
'TakeWhile'には、シーケンス内のアイテムの取得をいつ止めるべきかを示す' bool'を返すデリゲートが必要です。 – juharr
私はTakeWhile、anyotherオプションを使用する代わりに、私の要件@juharrのロジックを変更する必要がありますか? – Ranjith