C# LINQ:处理匿名类型
我正在尝试生成表单的图表:C# LINQ:处理匿名类型,c#,linq,C#,Linq,我正在尝试生成表单的图表: User A User B Owes Owed Net Sam David $20 $10 $10 Timbo ODP $30 $0 $30 使用以下查询: var debt = from user in users select new { User
User A User B Owes Owed Net
Sam David $20 $10 $10
Timbo ODP $30 $0 $30
使用以下查询:
var debt = from user in users
select new {
Username = username,
User = user,
Owes = owedBetween(username, user),
Owed = owedBetween(user, username),
Net = Owes - Owed // doesn't compile
};
问题是最后一行没有编译。有没有办法在查询中设置Net
值,或者我必须将其初始化为零,然后再进行更改?尝试:
Net = owedBetween(username, user) - owedBetween(user, username)
顺便说一下,我建议您对用户名
和用户
使用更好的名称。哪个是哪个?试试:
Net = owedBetween(username, user) - owedBetween(user, username)
顺便说一下,我建议您对
用户名
和用户
使用更好的名称。哪个是哪个?尝试使用let
关键字:
var debt = from user in users
let owes = owedBetween(username, user)
let owed = owedBetween(user, username)
select new {
Username = username,
User = user,
Owes = owes,
Owed = owed,
Net = owes - owed
};
尝试使用
let
关键字:
var debt = from user in users
let owes = owedBetween(username, user)
let owed = owedBetween(user, username)
select new {
Username = username,
User = user,
Owes = owes,
Owed = owed,
Net = owes - owed
};
是的,我知道,我很快就要重构了。是的,我知道,我很快就要重构了。