C# 是否可以在LINQ中创建三种不同的条件并产生三种不同的结果?
下面是我的Lambda LINQ。C# 是否可以在LINQ中创建三种不同的条件并产生三种不同的结果?,c#,linq,C#,Linq,下面是我的Lambda LINQ。 return await _trialBalanceContext .Entries .Select(x => new { accountTitle = x.AccountTitle, debitAmount = x.DebitAmount, creditAmount = x.CreditAmount, }) .ToListAsync(); if (accountT
return await _trialBalanceContext
.Entries
.Select(x => new
{
accountTitle = x.AccountTitle,
debitAmount = x.DebitAmount,
creditAmount = x.CreditAmount,
})
.ToListAsync();
if (accountTitle == "Asset"){
debitAmount = debitAmount * 100
creditAmount = creditAmount * 100
} else if (accountTitle == "Expense"){
debitAmount = debitAmount - creditAmount
creditAmount = creditAmount * debitAmount
} else
{
debitAmount = creditAmount + 30
creditAmount = debitAmount + 50
}
我想在上面的LINQ中应用以下条件。
return await _trialBalanceContext
.Entries
.Select(x => new
{
accountTitle = x.AccountTitle,
debitAmount = x.DebitAmount,
creditAmount = x.CreditAmount,
})
.ToListAsync();
if (accountTitle == "Asset"){
debitAmount = debitAmount * 100
creditAmount = creditAmount * 100
} else if (accountTitle == "Expense"){
debitAmount = debitAmount - creditAmount
creditAmount = creditAmount * debitAmount
} else
{
debitAmount = creditAmount + 30
creditAmount = debitAmount + 50
}
您可以这样做:
return await _trialBalanceContext
.Entries
.Select(x => new
{
accountTitle = x.AccountTitle,
debitAmount = (x.AccountTitle == "Asset") ? x.DebitAmount*100 : ((x.AccountTitle == "Expense") ? x.DebitAmount - x.CreditAmount : x.CreditAmount + 30),
creditAmount = (x.AccountTitle == "Asset") ? x.CreditAmount*100 : ((x.AccountTitle == "Expense") ? x.CreditAmount * x.DebitAmount : x.DebitAmount + 50),
})
.ToListAsync();
您可以这样做:
return await _trialBalanceContext
.Entries
.Select(x => new
{
accountTitle = x.AccountTitle,
debitAmount = (x.AccountTitle == "Asset") ? x.DebitAmount*100 : ((x.AccountTitle == "Expense") ? x.DebitAmount - x.CreditAmount : x.CreditAmount + 30),
creditAmount = (x.AccountTitle == "Asset") ? x.CreditAmount*100 : ((x.AccountTitle == "Expense") ? x.CreditAmount * x.DebitAmount : x.DebitAmount + 50),
})
.ToListAsync();
您的问题不清楚。
creditAmount=creditAmount*debitAmount
debitAmount指的是原始值还是紧靠前一行指定的值?原始值。谢谢你的回复!您的问题不清楚。creditAmount=creditAmount*debitAmount
debitAmount指的是原始值还是紧靠前一行指定的值?原始值。谢谢你的回复!这很接近,但不会编译,因为在设置debitAmount
和creditAmount
时无法引用accountTitle
。有没有办法引用我的accountTitle?@AhcmadAngagao您的意思是将标题作为变量传递?这很接近,但不会编译,因为设置debitAmount
和creditAmount
时不能引用accountTitle
。有没有办法引用我的accountTitle?@AhcmadAngagao您的意思是将标题作为变量传递?