LINQ:处理匿名类型

Nic*_*ner 1 c# linq

我正在尝试生成表单图表:

User A    User B     Owes      Owed     Net
Sam       David      $20       $10      $10
Timbo     ODP        $30       $0       $30
Run Code Online (Sandbox Code Playgroud)

使用以下查询:

        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
                   };
Run Code Online (Sandbox Code Playgroud)

问题是最后一行不能编译.有没有办法Net在查询中设置值,还是必须将其初始化为零然后再更改它?

Dav*_*kle 15

尝试使用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
               };
Run Code Online (Sandbox Code Playgroud)