Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# LINQ:处理匿名类型_C#_Linq - Fatal编程技术网

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
               };

是的,我知道,我很快就要重构了。是的,我知道,我很快就要重构了。