Mar*_*ard -1 .net c# linq asp.net-mvc
我有一个问题:
doc.NonFinancialAssetSection.NonFinancialAssets
.Where(m => m.Owner.Id == ownerId && m.InvestableAsset == true)
.Sum(s => s.CurrentValue);
Run Code Online (Sandbox Code Playgroud)
我需要将s.CurrentValue的值更改为s.ProposedValue,但是不是再次复制和粘贴查询,有什么办法可以让这个值依赖于传递给控制器的参数?
是的,你可以这样做:
var query = doc.NonFinancialAssetSection.NonFinancialAssets
.Where(m => m.Owner.Id == ownerId && m.InvestableAsset == true);
var sum = (condition)
? query.Sum(s => s.CurrentValue)
: query.Sum(s => s.ProposedValue);
Run Code Online (Sandbox Code Playgroud)
你也可以这样做:
var sum = doc.NonFinancialAssetSection.NonFinancialAssets
.Where(m => m.Owner.Id == ownerId && m.InvestableAsset == true)
.Sum(s => (condition) ? s.CurrentValue : s.ProposedValue);
Run Code Online (Sandbox Code Playgroud)
或这个:
Func<NonFinancialAsset, double> sumProperty = (condition)
? s => s.CurrentValue
: s => s.ProposedValue;
var sum = doc.NonFinancialAssetSection.NonFinancialAssets
.Where(m => m.Owner.Id == ownerId && m.InvestableAsset == true)
.Sum(sumProperty);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
50 次 |
| 最近记录: |